当前位置: 首页 > 面试题库 >

如何在Java中以相同顺序随机播放两个数组

杨昆
2023-03-14
问题内容

我有两个问题和答案

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)];

当然,如其他答案所建议的那样,创建一个class包含questionsanswers将是一种更加面向对象的方法。这样,与当前方法相比,您仅需维护一个List或。array``3 arrays



 类似资料:
  • 问题内容: 我有一个像这样的数组: 如何将其随机/随机播放? 问题答案: 实际无偏混洗算法是Fisher-Yates(aka Knuth)。

  • 问题内容: 我有两个并且彼此相关,例如,与“ e1.jpg”相关的“ H1.txt”。如何imgList根据的随机化自动对列表进行随机化?像在excel中一样,如果我们对某些列进行排序,其他列是否会自动跟随? 随机化后输出,例如: 预期的输出: 问题答案: 使用Collections.shuffle()两次,并Random用相同的种子初始化两个对象: 使用具有相同种子的两个对象可确保两个列表将以完

  • 问题内容: 我试图将以下Python代码转换为Go 但是我发现Go版本冗长而笨拙,因为没有shuffle函数,我不得不实现接口和转换类型。 什么是我的代码的惯用Go版本? 问题答案: 由于列表只是1到25之间的整数,因此可以使用Perm: 请注意,使用由给定的置换是重新排列任何数组的有效方法。

  • 的顺序将与为创建对象选择的顺序相同 允许重复的后续字符串组件并按顺序保留 未定义的行为(其他代码保证没有进入工厂) 在对象实例化之后,没有任何方法可以更改组件列表 我正在编写一个简单的测试,该测试从字符串列表创建并检查它是否可以通过返回相同的列表。我立即这样做,但这应该发生在一个现实的代码路径的远处。 这里是我的尝试: null null

  • 问题内容: 我有一个清单: 使用javascript,如何随机重新排列列表项? 问题答案: var ul = document.querySelector(‘ul’); for (var i = ul.children.length; i >= 0; i–) { ul.appendChild(ul.children[Math.random() * i | 0]); }

  • 问题内容: 我如何寻找地图中的元素,我正在寻找与方法类似的东西。 问题答案: A的排序方式实际上不像,这意味着您无法按索引访问项目。因此,改组通常没有任何意义。但是您可以这样做(我在示例中省略了泛型):