我正在制作一个应用程序,其中包含问题列表和相应答案。 问题在一个字符串数组中,而答案在另一个字符串数组中。
我已经实现了以下内容,希望能够改变问题。 (当然答案需要与这个问题联系起来,否则无意义)
selected_Q = new String[totalnoofQ];
selected_A = new String[totalnoofQ];
int[] random_code = new int[totalnoofQ];
for (int i = 0; i < totalnoofQ; i++)
{
random_code[i] = i;
}
Collections.shuffle(Arrays.asList(random_code));
for (int j = 0; j < totalnoofQ; j++)
{
int k = random_code[j];
selected_Q [j] = databank_Q [k];
selected_A[j] = databank_A [k];
}
代码报告没有致命错误,但selected_Q仍然按顺序排列。为什么? 你能否告诉我如何修改代码?感谢!!!
答案 0 :(得分:0)
您随机播放使用random_code创建的列表,但不会修改random_code。
您需要基于random_code创建临时列表。随机播放此列表,然后使用它填充selected_X数组。
这样的事情应该有效:
int[] random_code = new int[totalnoofQ];
for (int i = 0 ; i < totalnoofQ ; i++) {
random_code[i] = i;
}
List<Integer> random_code_list = new ArrayList<Integer>(); // Create an arraylist (arraylist is used here because it has indexes)
for (int idx = 0 ; idx < random_code.length ; idx++) {
random_code_list.add(random_code[idx]); // Fill it
}
Collections.shuffle(random_code_list); // Shuffle it
for (int j = 0 ; j < totalnoofQ ; j++) {
int k = random_code_list.get(j); // Get the value
selected_Q[j] = databank_Q[k];
selected_A[j] = databank_A[k];
}