假设我设置了以下内容:
private String one = "abc";
private String two = "def";
private String three = "ghi";
等等。
我想写一个方法,返回一个随机变量,无论我在类的顶部声明了多少,它都是其中之一。有简单的方法吗?
两个选项:
- (更复杂的)使用反射来获取类中的变量,并随机选择一个
- (更简单)将它们放在一个数组中,然后选择随机索引
这个简单的方法怎么样?如果元素太多,也可以使用Collection
。
public String getRandomString(){
Random r = new Random();
int i = r.nextInt()%3;
switch (i) {
case 0:
return one;
case 1:
return two;
case 2:
return three;
default:
break;
}
}
您可以将它们放入列表中,并通过使用随机数访问列表元素来选择随机列表元素(当然,您必须检查随机数是否在列表索引的范围内)。
如果您需要实际的示例代码,请对此进行评论;-)
您需要的有趣函数是math.random()
最简单、最方便的方法是使用数组而不是变量,然后获得一个随机整数,然后使用该数组的索引。
您可以将它们全部放在列表中,然后选择一个介于零和列表大小之间的随机数,并从列表中选择该元素。
将变量放入数组或列表中,并使用随机数生成器在该集合中选择一个随机元素。
我认为接受的解决方案可能会返回负值
Java文档nextInt()
- 所以您可能想要使用
Math.Abs()
- 或使用
r.nextInt(3)
java文档nextInt(n)
相关问题