Collections类提供reverse、shuffle、binarySearch三个静态方法:reverse原地反转List;shuffle用Fisher-Yates算法随机打乱List;binarySearch要求List已排序,返回索引或插入点。

Collections 类是 Java 集合框架中一个非常实用的工具类,它提供了一系列静态方法,无需手动遍历或编写复杂逻辑,就能对 List 等集合进行常见操作。下面直接说清楚怎么用它做三件事:反转顺序、打乱元素(混淆)、以及安全地执行二分查找。
一键反转 List 顺序
调用 Collections.reverse(list) 即可原地反转列表,不需要新建集合,也不用写 for 循环。
- 该方法修改的是原
List对象,不是返回新列表 - 只支持
List接口及其实现类(如ArrayList、LinkedList),不支持Set或数组 - 如果传入
null,会抛出NullPointerException
快速混淆(随机打乱)List 元素
使用 Collections.shuffle(list) 可以让列表元素顺序完全随机化,底层基于 Fisher-Yates 洗牌算法,保证均匀性。
- 同样作用于原列表,不创建副本
- 可选传入自定义
Random实例,便于测试时复现相同打乱结果 - 若列表不可修改(如
Collections.unmodifiableList()包装过的),会抛出UnsupportedOperationException
安全执行二分查找
Collections.binarySearch() 要求列表必须已按自然顺序或指定比较器排序,否则结果不可预测。它返回匹配元素的索引,未找到则返回负值(表示插入点)。
- 查找前务必确认列表已排序,否则不能用
- 支持两种重载:一种用元素自然序(要求元素实现
Comparable),另一种接受Comparator - 返回值为负数时,
-(insertionPoint) - 1表示应插入的位置,可用于判断是否存在
这些方法都简洁高效,但要注意前提条件和副作用——比如 reverse 和 shuffle 会改变原集合,而 binarySearch 对数据状态有强依赖。用对了,一行代码顶十行手写逻辑。

















