作者H45 (!H45)
站内java
标题[问题] 随机产生列举物件的方法?
时间Tue Aug 28 16:40:37 2007
我想要乱数产生下面的列举物件:
public enum Modifier {
NORMAL (1.0),
VERY(2.0),
MORE_OR_LESS(0.5);
private final double value;
private LinguisticModifier(double value) {
this.value = value;
}
public double getValue() {
return value;
}
}
目前想到乱数产生的方式如下:
public Modifier a_random_modifier() {
switch (new Random().nextInt() % 3) {
case 0: return Modifier.NORMAL; break;
case 1: return Modifier.VERY; break;
case 2: return Modifier.MORE_OR_LESS; break;
default:;
}
}
但是问题马上出现了,如果列举的型态多到数十个,那麽这种乱数产生的方式
就要写上数十个 case. 举例而言:
switch (random.nextInt() % 52) {
case 0: ...
case 1: ...
...
case 50: ...
case 51: ...
default:;
}
这样会写到手断掉....有数十行的程式码要写
如果有办法得到列举型态的 iterator, 也许就可以不用这麽累了。
请问有什麽好法子乱数产生这些列举型态吗?
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.211.211.53
1F:推 godfat:存到 array 去? 08/28 16:42
2F:推 PsMonkey:写 code generator... lol [逃] 08/28 16:45
3F:推 ogamenewbie:public static Modifier random() { 08/28 17:10
4F:推 ogamenewbie: return values()[new Random().nextInt(values(). 08/28 17:10
5F:推 ogamenewbie: .length)]; } 08/28 17:11
6F:推 ogamenewbie:这快速连推限制是装饰用的嘛 @_@a 08/28 17:13
7F:推 H45:非常感谢推文及以下回文 :) 08/28 18:57