我的智慧结束了这个!这是我的一些代码:
ArrayList<Integer> score = new ArrayList<Integer>();
ArrayList<Integer> indices;
int total = 10;
for(int c = 0; c < total; ++c)
{
score.add(c);
}
indices = new ArrayList<Integer>(total);
for(int c = 0; c < total; ++c)
{
indices.add(c);
}
Collections.shuffle(indices);
rando1 = indices.get(0);
int currentScore;
currentScore = score.get(indices.get(rando1));
Toast.makeText(getApplicationContext(),
"score location should be: " + rando1, Toast.LENGTH_SHORT).show();
Toast.makeText(getApplicationContext(),
"score location is: " + currentScore, Toast.LENGTH_SHORT).show();
敬酒是为了帮助我看看发生了什么。出于某种原因,无论我尝试什么,rando1和currentScore几乎总是不同的数字。
这令我感到困惑,因为我在许多其他数组(字符串数组)上使用rando1,并且它总是从其他数组中获取正确的项目。
我的问题是为什么这不会从整数数组获得与其他字符串数组相同的索引项(任何索引处的整数)。我试过隔离这段代码。我试过改变各种各样的东西。我做了很多测试。并且搜索没有变得过于具体(但我已经尝试过我在那里找到的东西)。
祝酒词的输出:“得分位置应为:3”,“得分位置为:3”
实际输出:“得分位置应为:3”,“得分位置为:5”(将5替换为任何其他数字,因为它应该与它之间没有固定的模式。)
答案 0 :(得分:0)
使用以下代码获取随机元素ArrayList。
Random r = new Random();
currentScore = score.get(r.nextInt(score.size()))
如果您想要输出,请更改以下行:
currentScore = score.get(rando1);