Collections提供排序、查找、修改及视图封装等静态方法:sort支持自然/自定义排序,reverse反转,shuffle随机打乱,rotate循环移位;binarySearch需预排序,max/min/frequency用于极值与频次统计;swap、replaceAll、fill、copy实现元素交换、替换、填充与复制;emptyList/singletonList返回不可变轻量视图,unmodifiableXXX提供只读代理,synchronizedXXX增强线程安全。

排序与重排类方法
Collections 提供了多种对 List 进行顺序调整的静态方法,无需自己写循环。常用包括:
- sort(List):按元素自然顺序升序排列(要求元素实现 Comparable);支持传入 Comparator 实现自定义排序,比如按字符串长度或降序排列。
- reverse(List):直接反转列表中元素的顺序,操作快速且原地生效。
- shuffle(List):使用默认随机源“洗牌”,打乱元素位置;适合测试数据生成或随机抽样场景。
-
rotate(List, int distance):将列表向右循环移动指定距离(负数表示左移),例如
[1,2,3,4,5]经rotate(list, 2)变为[4,5,1,2,3]。
查找与统计类方法
针对已知结构的集合,Collections 封装了高效、安全的查找逻辑:
- binarySearch(List, key):仅适用于已排序的 List,返回元素索引(>=0)或插入点(负值)。未排序时结果不可靠。
- max(Collection) 和 min(Collection):返回自然顺序下的极值;也支持传入 Comparator 定制比较规则。
- frequency(Collection, Object):统计某对象在集合中出现的次数,对 List 或 Set 均适用,内部遍历实现,时间复杂度 O(n)。
修改与填充类方法
批量操作集合内容,避免手写 for 循环:
- swap(List, i, j):交换指定索引处两个元素,常用于算法实现(如冒泡、快排片段)。
- replaceAll(List, oldVal, newVal):将所有匹配值替换成新值,注意是引用相等判断(== 或 equals)。
- fill(List, obj):用指定对象覆盖列表全部元素,适合初始化或清空后重置场景。
- copy(List dest, List src):将 src 元素复制到 dest 中,要求 dest 长度 ≥ src,否则抛出 IndexOutOfBoundsException。
集合视图与安全包装
不创建新集合,而是返回特定语义的包装视图:
立即学习“Java免费学习笔记(深入)”;
-
emptyList() / singletonList(obj):返回不可修改的空列表或单元素列表,轻量且线程安全,推荐替代
new ArrayList()。 -
unmodifiableXXX():如
unmodifiableList(list),返回只读视图,任何修改操作均抛出 UnsupportedOperationException。 -
synchronizedXXX():如
synchronizedList(new ArrayList()),返回线程安全代理;但注意:迭代仍需手动加锁,否则可能抛 ConcurrentModificationException。










