0
我在我的oncreate()开头打了2个清单,然后我想在稍后点击一个“新游戏”按钮时再次洗牌。他们第一次洗牌我用:多次洗牌清单
final Random rnd = new Random();
final int seed = rnd.nextInt();
rnd.setSeed(seed);
Collections.shuffle(Arrays.asList(answerChoices),rnd);
rnd.setSeed(seed);
Collections.shuffle((resources),rnd);
一切工作正常。然而,当我尝试再次按下“新游戏”按钮时再次洗牌时,我尝试使用与上面相同的方法,并尝试更改rnd和seed的名称,但它无法正常工作。第二次洗牌后,列表不符合他们应该。有什么我应该尝试的建议?
你是什么意思的“名单不匹配,因为他们应该”? –
列表第二次洗牌,但他们不匹配。他们第一次洗牌他们匹配。通过匹配我的意思是列表1的第0行应该始终对应列表2的第0行,无论他们在被混洗后切换到哪里。 – ez4nick
所以,如果我正确理解你,你是随机洗牌两个名单,但期望他们有相同的结果?这看起来很危险,因为不应该依赖'shuffle'的行为是可重复的。我建议你使用另一种机制,例如将一个列表进行混洗,或者同时对两个列表进行自己的混洗。 –