什么会促使人们使用这种方法?
更新:我现在明白了。我喜欢 Uri 的原因“洗牌不是一个简单的算法”。这是完全正确的。
想要随机打乱有序的元素序列可能有很多原因。例如,一副纸牌。
洗牌不是一种微不足道的算法,就像排序不是一样 - 所以它很常见,需要一个库函数。
至于为什么是一个列表 - 显然它必须是一个有序的集合,因此不是任何一般的集合。只有 list 及其子类型保证是有序的。Collections 类不提供数组操作,但您可以(并且可能应该,为了性能)将 ArrayList 传递给此方法。
嗯,如果你有一个收藏,并且你想洗牌...
最明显的例子是纸牌游戏,其中您有代表单张纸牌的对象,以及代表您想要洗牌的牌组的集合。
另一个示例可能是,如果您在问卷中向用户提供多个答案,并且您不希望由于答案的顺序而出现任何偏差 - 所以您向每个用户提供一组打乱的答案以供选择.
好吧,假设您正在为一副纸牌建模。Shuffle 将是您首先编写的函数之一。
任何时候你想随机化一个集合的内容,你都会使用 shuffle。
如何使用此方法的一些想法: