Collections 是 Java 提供的操作集合的静态工具类,支持排序(sort、reverse、shuffle)、查找(binarySearch、max/min)、不可变与同步包装(unmodifiableList、synchronizedList)、填充拷贝(fill、copy)等操作,所有方法均通过类名调用,不实例化,适用于日常开发但非高性能场景。

Collections 是 Java 中操作集合的工具类,它提供了一系列静态方法,用于对 List、Set、Map(仅部分)等集合进行排序、查找、同步、不可变包装等操作。它不直接实例化,所有方法均为 static,使用时通过类名调用,如 Collections.sort(list)。
排序与反转
适用于 List 类型,要求元素实现 Comparable 接口,或传入自定义 Comparator。
-
sort(List:按自然顺序升序排列list) -
sort(List:按指定比较器排序list, Comparator super T> c) -
reverse(List> list):反转列表中元素顺序 -
shuffle(List> list):随机打乱元素顺序(基于默认随机源)
查找与替换
提供便捷的线性查找和批量操作能力,适合中小规模集合(非高性能场景)。
-
binarySearch(List extends Comparable>> list, T key):在已排序列表中二分查找,返回索引或负插入点 -
max(Collection extends T> coll)/min(...):返回最大/最小元素(要求元素可比较) -
frequency(Collection> c, Object o):统计某元素在集合中出现次数 -
replaceAll(List:批量替换指定元素list, T oldVal, T newVal)
不可变与同步包装
用于增强集合的安全性和线程安全性,注意这些方法返回的是原集合的“视图”,不是新集合副本。
立即学习“Java免费学习笔记(深入)”;
-
unmodifiableList(List extends T> list)等系列方法:返回只读视图,修改会抛UnsupportedOperationException -
synchronizedList(List等:返回线程安全的同步包装器(方法级加锁,性能一般)list) -
emptyList()/singletonList(T o):返回预定义的不可变空或单元素集合,高效且节省内存
填充与拷贝
适用于初始化或批量赋值场景,操作对象必须是可变集合。
-
fill(List super T> list, T obj):用指定对象填充整个列表 -
copy(List super T> dest, List extends T> src):将源列表复制到目标列表(要求dest.size() >= src.size()) -
nCopies(int n, T o):返回包含n个相同元素的不可变列表(常用于初始化)
这些方法覆盖了日常开发中大部分集合操作需求,但要注意:它们不改变原集合结构(如 unmodifiableXXX 返回新视图),也不替代流式处理(Java 8+ 推荐用 Stream 做复杂转换)。合理选择能提升代码简洁性与可读性。










