Collections 是 Java 中操作集合的工具类,所有方法均为 static,提供不可变集合创建、排序查找、同步包装及常用操作等功能。

Collections 是 Java 中的工具类,专门用于操作集合(Collection 接口及其实现类),它不提供实例,所有方法都是 static 的,直接通过类名调用。注意:它和 Collection(接口)、collections(小写,常见拼写错误)不是一回事。
常用不可变集合创建方法
这类方法返回不可修改的集合视图,适合做常量或安全返回值:
-
Collections.emptyList():返回空的List(类型安全,无需强制转换) -
Collections.emptySet():返回空的Set -
Collections.emptyMap():返回空的Map -
Collections.singletonList("a"):返回只含一个元素的不可变List -
Collections.unmodifiableList(list):包装已有列表,禁止增删改(运行时抛UnsupportedOperationException)
集合排序与查找工具
适用于 List,要求元素实现 Comparable 或传入 Comparator:
-
Collections.sort(list):对 List 原地升序排序(仅限 List) -
Collections.sort(list, comparator):按自定义规则排序 -
Collections.binarySearch(list, key):在已排序 List 中二分查找(未排序结果不可预测)
同步包装器(线程安全包装)
为非线程安全集合(如 ArrayList、HashMap)提供简单同步保障(性能较低,生产环境推荐 ConcurrentHashMap 等专用并发类):
Collections.synchronizedList(new ArrayList())Collections.synchronizedSet(new HashSet())Collections.synchronizedMap(new HashMap())
⚠️ 注意:返回的包装对象虽方法加了 synchronized,但遍历时仍需手动同步整个迭代过程。
其他实用静态方法
解决常见小需求:
-
Collections.frequency(list, "abc"):统计某元素在集合中出现次数 -
Collections.max(list)/Collections.min(list):找最大/最小元素(要求可比较) -
Collections.reverse(list):反转 List 元素顺序 -
Collections.swap(list, i, j):交换 List 中两个索引位置的元素 -
Collections.replaceAll(list, oldVal, newVal):批量替换元素
不复杂但容易忽略











