尝试在按下的按钮上从ListArray中获取随机字符串。总是得到相同的,第二个元素。不管阵列有多大。
这是关键按下的内容:
int randIndex = getRandomIndex(ListArray.size());
String chosenItem = ListArray.get(randIndex);
预先声明方法getRandomIndex
,如下所示:
public int getRandomIndex(int size) {
return (1+(int)Math.random()*size);
};
答案 0 :(得分:3)
从int
到double
的演员阵容优先于乘法size
。将Math.random()
强制转换为int
时,会删除小数,结果为0
。因此,getRandomIndex
将始终返回1
。
换句话说,
return (1 + (int) [some double variable] * size);
与
相同return 1 + (0)*size;
与
相同return 1;
修复:
private static final Random rand = new Random();
public int getRandomIndex(int size) {
return rand.nextInt(size);
}
这更具可读性,可确保随机数的均匀分布。