如果我有一个这样的enum:
public enum Letter {
A,
B,
C,
//...
}
随机挑选一个的最佳方法是什么?它不需要是生产质量的防弹,但一个相当均匀的分布会很好。
我可以这样做
private Letter randomLetter() {
int pick = new Random().nextInt(Letter.values().length);
return Letter.values()[pick];
}
但是有没有更好的办法呢?我觉得这个问题之前已经解决了。
我想这个单行返回方法足够有效,可以用于这样一个简单的工作:
public enum Day {
SUNDAY,
MONDAY,
THURSDAY,
WEDNESDAY,
TUESDAY,
FRIDAY;
public static Day getRandom() {
return values()[(int) (Math.random() * values().length)];
}
public static void main(String[] args) {
System.out.println(Day.getRandom());
}
}
我想这个单行返回方法足够有效,可以用于这样一个简单的工作:
public enum Day {
SUNDAY,
MONDAY,
THURSDAY,
WEDNESDAY,
TUESDAY,
FRIDAY;
public static Day getRandom() {
return values()[(int) (Math.random() * values().length)];
}
public static void main(String[] args) {
System.out.println(Day.getRandom());
}
}