没有这种无拘无束的概念 - 例如,在你洗牌后,你会如何回到以前的状态?
如果您的原始收藏品以某种明确的方式订购,请再次对其进行排序.否则(例如,如果它是手工订购的)你必须在洗牌之前复印一份.
理论上你可以:
Random
并将其传递给shuffle
ArrayList<Integer>
从0到大小(独家)Random
使用原始种子创建的新列表随机播放该列表......但这是一项非常多的工作.除非你的集合真的太大而不能保留额外的副本(不要忘记它只是引用的副本,而不是整个对象),我只是在改组之前克隆集合.