Java Collections.shuffle是否保证结果不会排序?

Java Collections.shuffle是否保证结果不会排序?,java,collections,Java,Collections,Collections.shuffle是否保证结果列表不按升序或降序排序 假设我有一个包含“a”、“b”、“c”、“d”的字符串列表 在Collections.shuffle(字母)之后letters是否会等于a-b-c-d或d-c-b-a 如果字母可以按顺序排列,有没有办法防止集合。shuffle让列表按升序或降序排列?当然没有,因为那样它就不会是随机的shuffle。仅仅因为这两种排列在我们人类看来是有序的,并不意味着在选择随机排列时应该避免它们 如果您确实希望避免升序和降序,那么可以在循环

Collections.shuffle
是否保证结果列表不按升序或降序排序

假设我有一个包含“a”、“b”、“c”、“d”的字符串列表

Collections.shuffle(字母)
之后
letters
是否会等于a-b-c-d或d-c-b-a


如果
字母
可以按顺序排列,有没有办法防止
集合。shuffle
让列表按升序或降序排列?

当然没有,因为那样它就不会是随机的shuffle。仅仅因为这两种排列在我们人类看来是有序的,并不意味着在选择随机排列时应该避免它们

如果您确实希望避免升序和降序,那么可以在循环中洗牌,检查列表是否有序

while (isSorted(list) || isSorted(list, Comparator.reverseOrder())
    Collections.shuffle(list);

使用适当的
实现进行排序
。(请注意,对于0或1元素列表来说,这将是一个无限循环!)

当然不是,因为那样它就不会是随机洗牌。仅仅因为这两种排列在我们人类看来是有序的,并不意味着在选择随机排列时应该避免它们

如果您确实希望避免升序和降序,那么可以在循环中洗牌,检查列表是否有序

while (isSorted(list) || isSorted(list, Comparator.reverseOrder())
    Collections.shuffle(list);
使用适当的
实现进行排序
。(请注意,对于0或1元素列表,这将是一个无限循环!)

取决于升序是一种可能的随机顺序。取决于升序是一种可能的随机顺序。