java - 如何在 java 中以相同的顺序打乱两个数组

标签 java arrays list collections

我有两个问题和答案数组

String questions[] = {
"Q1?",
"Q2?",
"Q3?"};

String answers[] = {
    "A1?",
    "A2?",
    "A3?"};

我使用 Collections.shuffle(Arrays.asList(questions); 打乱每个数组。如何打乱每个数组以便在打乱后它们保持相同的顺序?

最佳答案

您可以改组一个包含索引的新数组。然后从第一个索引获取两个数组中的元素。

List<Integer> indexArray = Arrays.asList(0, 1, 2);

Collections.shuffle(indexArray);

String question = questions[indexArray.get(0)];
String answer = answers[indexArray.get(0)];

当然,正如其他答案所建议的那样,创建一个包含questionsanswersclass 将是一种更面向对象的方式。这样一来,与当前方法中的 3 个数组 相比,您只需维护一个 Listarray

关于java - 如何在 java 中以相同的顺序打乱两个数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13532919/

相关文章:

java - 不理解Java中的一些基本编译错误

java - 返回数组中整数的第一个数字

javascript - 遍历数组的数组

python - 如何加速 Eratosthenes python 列表生成器的筛选

python - 列表索引必须是整数或切片 python 3.6 list

python - 从字符串中添加不同的项目到列表中

java - 从scala访问java二维 vector

java - 设置 JPanel 的边界

c - 如何在 C 中将一个 char 数组的某些位获取到另一个 char 数组?

java - Java中数组初始值设定项中带有尾随逗号的数组