collections工具类是java中专为集合操作设计的静态方法集合,提供排序、查找、批量操作、安全增强等能力,所有方法均通过collections.方法名()调用,无需实例化。

Collections 工具类是 Java 中专为集合操作设计的静态方法集合,不需实例化,直接通过 Collections.方法名() 调用。它不是集合本身,而是一套“集合遥控器”,重点提升 List 的操作效率与安全性,部分方法也适用于 Set、Queue 等所有 Collection 子类。
排序与顺序调整(仅限 List)
这类操作全部作用于 List,且多数为原地修改(无返回值,直接改原集合):
-
自然排序:用
Collections.sort(list),要求元素实现Comparable(如 String、Integer); -
自定义排序:传入 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),高效完成两个索引处元素互换; -
循环位移:
Collections.rotate(list, distance),正数向右滚(如rotate(list, 2)把末尾 2 个移到开头)。
查找与极值获取(注意前提条件)
这些方法对数据状态敏感,用错易得错误结果:
-
二分查找:
Collections.binarySearch(list, key)必须在已升序排序的 List 上调用,否则结果不可信; -
最大/最小值:
Collections.max(coll)和Collections.min(coll)支持任意 Collection,但依赖元素可比较; - 若集合为空,
max/min会抛NoSuchElementException,建议调用前判空。
批量操作与安全增强
避免手写循环,同时提供关键运行时保障:
-
批量添加:
Collections.addAll(list, "a", "b", 1, 2),支持可变参数,比多次add()更简洁; -
不可修改视图:
Collections.unmodifiableList(list)返回只读包装,任何修改操作立即抛UnsupportedOperationException; -
线程安全包装:
Collections.synchronizedList(list)为 ArrayList 等非线程安全集合加同步锁,但遍历时仍需手动同步迭代块。
其他实用辅助方法
补充高频但易被忽略的操作能力:
-
填充元素:
Collections.fill(list, obj)将列表所有位置设为指定对象; -
统计频次:
Collections.frequency(collection, obj)返回某元素在集合中出现次数; -
空集合常量:
Collections.emptyList()、Collections.emptySet()等返回不可变空集合,轻量且线程安全。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











