是否Collections.shuffle保证结果列表不按升序或降序排序?
假设我有一个letters包含"a","b","c","d" 的字符串列表.
以后Collections.shuffle(letters)会letters等于abcd还是dcba?
如果letters最终可以订购,有没有办法阻止Collections.shuffle列表按升序或降序排序?
当然它没有,因为那时它不会是一个随机的洗牌.仅仅因为这两种排列看起来对我们来说是人类并不意味着在选择随机排列时应该避免它们.
如果您确实想要避免升序和降序,则可以在循环中随机检查列表是否已排序.
while (isSorted(list) || isSorted(list, Comparator.reverseOrder())
Collections.shuffle(list);
Run Code Online (Sandbox Code Playgroud)
适当的实施isSorted.(请注意,这将是0或1元素列表的无限循环!)
| 归档时间: |
|
| 查看次数: |
108 次 |
| 最近记录: |