关注此问题: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?
答案 0 :(得分:2)
如果您询问是否使用Collections.shuffle
然后使用随机排序的数字结果列表相当于使用Random
逐个选择它们,则答案为否定。后者很可能会两次返回相同的索引,这将导致重复。