如何在java中以相同的方式洗牌两个列表? 2 月 Questions & Answers 1086 我想用同样的方式洗牌两个列表。假设我有两个问题和答案清单。我想以相同的方式对它们进行洗牌,使问答对保持不变
# 1 楼答案 Java集合对这个问题有一个(令人惊讶的)简单的解决方案:Collections.shuffle(Collection<?>, Random)和一个Random的种子是相同的 List<Integer> quests = Arrays.asList(1, 2, 3, 4, 5); List<Integer> answers = Arrays.asList(10, 20, 30, 40, 50); long seed = System.nanoTime(); Collections.shuffle(quests, new Random(seed)); Collections.shuffle(answers, new Random(seed)); System.out.println(quests); System.out.println(answers); 注: 额外的优化是危险的 这不起作用: long seed = System.nanoTime(); Random rnd = new Random(seed); Collections.shuffle(quests, rnd); Collections.shuffle(answers, rnd);
# 1 楼答案
Java集合对这个问题有一个(令人惊讶的)简单的解决方案:
Collections.shuffle(Collection<?>, Random)
和一个Random
的种子是相同的注:
额外的优化是危险的 这不起作用: