如果我有这样的枚举:
public enum Letter {
A,
B,
C,
//...
}
随机挑选一个的最佳方法是什么?它不需要生产质量防弹,但相当均匀的分布会很好。
我可以做这样的事情
private Letter randomLetter() {
int pick = new Random().nextInt(Letter.values().length);
return Letter.values()[pick];
}
但是有更好的方法吗?我觉得这是以前已经解决的问题。
原文由 Nick Heiner 发布,翻译遵循 CC BY-SA 4.0 许可协议
我唯一建议的是缓存
values()
的结果,因为每次调用都会复制一个数组。另外,不要每次都创建Random
。留一个。除此之外,你所做的一切都很好。所以: