跟随这个问题:Shuffling numbers in a map and selecting one.
假设您需要从 List
中随机选择一系列整数。 Collections.shuffle
是否可以被视为等同于重复使用 Random#nextInt
?
我不熟悉 shuffle 的实现方式以及它们是否可以从数学角度(排列)被视为真正等价。下面的链接确实强调了使用单个 Random
对象的重要性。
http://www.javapractices.com/topic/TopicAction.do?Id=62
P.S:我知道 Collections.shuffle
添加了一个操作,它实际上重新组织了内容。这是我感兴趣的结果。
编辑:在 SO 上发现了这个问题,详细说明了使用所谓的 Fisher-Yates 洗牌的洗牌方法:Java's Collections.shuffle is doing what?
最佳答案
如果您问是否使用 Collections.shuffle
然后使用生成的随机排序数字列表等同于使用 Random
一个一个地挑选它们,答案是不。后者很可能会两次返回相同的索引,这将导致重复。
关于java - 可以将 Collections.shuffle 视为等同于一系列 Randoms 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6882081/