可以将Collections.shuffle视为等同于一系列Randoms吗?

时间:2011-07-30 08:47:35

标签: java random

关注此问题: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添加了一个操作,因为它实际上重新组织了内容。这是我感兴趣的结果。

编辑:发现这个问题,详细说明了将shuffle方法用于所谓的Fisher-Yates shuffle:Java's Collections.shuffle is doing what?

1 个答案:

答案 0 :(得分:2)

如果您询问是否使用Collections.shuffle然后使用随机排序的数字结果列表相当于使用Random逐个选择它们,则答案为否定。后者很可能会两次返回相同的索引,这将导致重复。