下面这个问题:在地图中变换数字并选择一个。
假设您需要从一个List
中随机选择一系列整数。一个Collections.shuffle
可以被认为等同于重复使用Random#nextInt
吗?
我不熟悉洗牌是如何实现的,从数学的角度来看,它们是否可以被视为真正等价的(排列)。下面的链接确实强调了使用单个Random
对象的重要性。
p。S:我知道Collections.shuffle
增加了一个操作,它实际上是重新组织内容。这是我感兴趣的结果。
编辑:在Java's Collections上发现了这个问题,详细说明了shuffle方法是使用所谓的Fisher-Yates shuffle:Shuffle在做什么?
如果你问使用Collections.shuffle
然后使用随机排序数字的结果列表是否等同于使用Random
逐个挑选它们,答案是否定的。后者很可能会返回相同的索引两次,这将导致重复。