如果我有一个这样的枚举:Java:从枚举中选择一个随机值?
public enum Letter {
A,
B,
C,
//...
}
什么是选择一个随机的最佳方式?它不需要生产质量防弹,但相当均匀的分布会很好。
我可以做这样的事情
private Letter randomLetter() {
int pick = new Random().nextInt(Letter.values().length);
return Letter.values()[pick];
}
但有一个更好的办法?我觉得这是以前解决的问题。
你觉得有什么不对您的解决方案?它对我来说很不错。 – 2009-12-29 00:57:59
@GregS - 问题是每次调用'Letter.values()'都必须创建一个内部的'Letter'值数组的新副本。 – 2009-12-29 02:13:44
darn,我只是想问同样的问题。 (+1) – 2011-01-04 12:12:12