collections工具类是专为集合服务的静态方法集合,不可实例化,提供排序(仅list,原地修改)、查找(需预排序)、极值获取、批量操作及安全封装等功能。

Collections工具类不是集合本身,而是一套专为集合服务的静态方法集合。它不能被实例化,所有操作都通过Collections.方法名()直接调用,核心价值在于简化List、Set等集合的常见操作——排序、查找、批量处理与安全封装。
排序与顺序控制(仅限List)
这类方法全部作用于List,且多数是原地修改、无返回值:
-
自然排序:用
Collections.sort(list),要求元素实现Comparable(如String、Integer); -
自定义排序:传入Comparator,例如按字符串长度降序:
Collections.sort(list, (a, b) -> b.length() - a.length()); -
反转顺序:
Collections.reverse(list),直接翻转原有顺序; -
随机打乱:
Collections.shuffle(list),适合模拟抽样或洗牌场景; -
交换与位移:用
swap(list, i, j)高效互换两元素;用rotate(list, distance)实现循环移动(正数右滚,负数左滚)。
查找与极值获取(注意前提条件)
这些方法对数据状态敏感,误用会导致结果不可靠:
-
二分查找必须在已排序的List上调用
Collections.binarySearch(list, key),否则返回值无意义;支持带Comparator的重载版本; -
最大最小值:
max()和min()适用于任意Collection(List、Set、Queue),但依赖元素可比较;空集合会抛NoSuchElementException,建议先判空; - 所有查找与极值方法均不改变原集合结构。
批量操作与安全增强(通用性强)
这部分方法覆盖更广,兼顾效率与安全性:
-
批量添加:
Collections.addAll(list, "a", "b", 1, 2),比循环add简洁得多; -
不可修改视图:
unmodifiableList(list)返回只读包装,任何修改操作立即抛UnsupportedOperationException; -
线程安全包装:
synchronizedList(list)为ArrayList等非线程安全集合加锁,但遍历时仍需手动同步迭代块,否则可能出错。
关键避坑提醒
几个高频错误点需时刻警惕:
- Collection ≠ Collections:前者是接口(List/Set的父接口),后者是工具类,名字差一个“s”;
- 方法适用范围不同:sort/shuffle/reverse等仅支持List;addAll/max/min则适用于所有Collection;
- 原地操作无返回值:所有修改类方法(sort、reverse、shuffle等)返回void,直接改变原集合,不生成新对象。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











