什么情况下会使用这种方法?
更新:我现在明白了。我喜欢Uri的理由:“洗牌不是一个简单的算法”。这是非常正确的。
更新:我现在明白了。我喜欢Uri的理由:“洗牌不是一个简单的算法”。这是非常正确的。
有很多理由会导致人们想要随机洗牌一个有序的元素序列,例如一副牌。
洗牌不是一个简单的算法,就像排序一样。因此,它很常见,需要一个库函数。
至于为什么使用列表 - 显然必须是有序集合,因此不能是任何一般的集合。只有列表及其子类型可以保证按顺序排列。Collections类不提供数组操作,但您可以(而且可能应该,为了性能)将一个ArrayList传递给这个方法。
如果你有一个集合,并且想要将其洗牌...
最明显的例子就是纸牌游戏,其中你有代表每张卡牌的对象,以及代表你想要洗牌的牌组的集合。
另一个例子可能是在问卷调查中向用户呈现多个答案,而你不希望由于答案的顺序而产生任何偏见-因此你向每个用户呈现一组洗牌后的答案供其选择。
想象一下,你正在模拟一副牌。洗牌将是你编写的第一个函数之一。
每当你想要随机化集合的内容时,你都会使用shuffle。
以下是一些使用此方法的想法: