如果我有一個這樣的枚舉: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