collections工具类提供静态方法实现集合高频操作:排序(sort)、查找(binarysearch需有序)、打乱(shuffle)、反转(reverse)、填充(fill)、复制(copy)、取极值(max/min),均原地操作且不创建新集合。

Collections 工具类是 Java 集合操作的“快捷键”,不用创建实例,直接调用静态方法就能完成排序、查找、打乱、反转等高频任务。它专为 List 设计得最完善,部分方法也支持所有 Collection 类型,但不直接操作 Map。
排序:默认升序与自定义规则
对 List 排序最常用的是两个 sort() 方法:
-
Collections.sort(list):要求元素实现Comparable接口(如 String、Integer),按自然顺序升序排列。 -
Collections.sort(list, comparator):传入Comparator实现自定义逻辑,比如按字符串长度、降序、多字段组合排序。
注意:排序前确保 list 不为 null,且元素类型一致;若 list 为空或只有一个元素,方法安全执行无异常。
查找:二分法快,但前提必须有序
Collections.binarySearch(list, key) 是高效查找手段,时间复杂度 O(log n),但有硬性要求:
- list 必须已通过
sort()或其他方式排好序(升序); - key 类型需与 list 元素类型兼容,否则可能抛
ClassCastException; - 返回值 ≥ 0 表示找到并返回索引;返回负数表示未找到,其绝对值可换算为插入点位置。
重排与反转:打乱顺序和翻转顺序
这两个操作都只作用于 List:
-
Collections.shuffle(list):使用默认随机源(Random)打乱元素顺序,适合模拟抽签、洗牌等场景;可选传入自定义Random实例增强可重现性。 -
Collections.reverse(list):原地反转,首尾互换,操作简单高效,常用于倒序遍历或结果调整。
实用辅助:填充、复制、取极值
这些方法覆盖日常小而关键的需求:
-
Collections.fill(list, obj):把 list 所有位置替换成同一个对象(注意 list 必须已初始化且非空); -
Collections.copy(dest, src):将 src 元素复制到 dest 对应索引,要求 dest 长度 ≥ src 长度,否则抛IndexOutOfBoundsException; -
Collections.max(collection)和Collections.min(collection):适用于任意 Collection,同样依赖元素的Comparable实现,也可传 Comparator 自定义比较逻辑。
不复杂但容易忽略:所有 Collections 方法均不创建新集合,基本是原地操作;若需不可变视图,可用 unmodifiableList() 等配套方法保护数据。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











