collections 是 java 集合操作的静态工具类,提供排序(sort、reverse、shuffle、swap)、查找(binarysearch)、极值(max/min)、频次(frequency)、填充(fill)、替换(replaceall)、添加(addall)、线程安全包装(synchronizedlist)和不可变封装(unmodifiablelist)等方法,所有操作均直接修改原集合或返回包装视图。

Collections 是 Java 中专为集合操作设计的静态工具类,不创建实例,直接调用方法即可完成常见集合处理任务。它不是集合本身,而是集合的“操作遥控器”——所有方法都通过 Collections.方法名() 调用,且绝大多数面向 List,部分支持通用 Collection。
排序与顺序调整
对 List 进行有序化或结构调整是最高频场景,注意:这些操作直接修改原列表,不返回新集合。
-
自然排序:元素需实现
Comparable(如 String、Integer),调用Collections.sort(list)升序排列 -
自定义排序:传入
Comparator,例如按字符串长度降序:Collections.sort(list, (a, b) -> b.length() - a.length()) -
反转顺序:
Collections.reverse(list)将 [1,2,3] 变为 [3,2,1] -
随机打乱:
Collections.shuffle(list)实现洗牌效果,内部基于随机种子重排 -
交换位置:
Collections.swap(list, i, j)快速交换两个索引处的元素
查找与极值获取
查找依赖前提条件,极值计算则要求元素可比较。
-
二分查找:仅适用于已排序的 List,调用
Collections.binarySearch(list, key)返回索引;未找到时返回负值(表示应插入位置) -
最大/最小值:
Collections.max(coll)和Collections.min(coll)支持任意Collection,同样要求元素实现Comparable或传入Comparator -
元素频次:
Collections.frequency(coll, obj)统计指定对象在集合中出现次数,适用于 List、Set 等
内容填充与批量替换
适用于初始化或统一修改场景,操作直接作用于原 List。
-
全部填充:
Collections.fill(list, obj)将列表每个位置设为同一对象(如全填 null 或默认值) -
批量替换:
Collections.replaceAll(list, oldVal, newVal)替换所有匹配项,支持 null 值参与比较 -
批量添加:
Collections.addAll(coll, elements...)比循环 add() 更简洁,支持 varargs 参数
安全增强与不可变封装
解决多线程和误修改问题,返回的是原集合的“包装视图”,非深拷贝。
-
线程安全包装:
Collections.synchronizedList(list)返回同步代理,但遍历仍需手动加锁(如synchronized(list)块内迭代) -
不可修改视图:
Collections.unmodifiableList(list)任何增删改操作均抛UnsupportedOperationException -
空集合常量:
Collections.emptyList()等返回类型安全、不可变、共享的空集合,避免 new ArrayList() 的冗余开销
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











