collections是专为集合服务的不可实例化工具类,提供排序(sort、reverse、shuffle)、查找(binarysearch)、极值(max/min)、批量操作(addall)及安全增强(unmodifiablelist、synchronizedlist)等方法,所有调用均通过collections.方法名()形式执行。

Collections 工具类不是集合,而是一套专为集合服务的“操作遥控器”——它不能被实例化,所有方法都用 Collections.方法名() 直接调用,核心目标是让 List、Set 等集合的操作更简洁、更安全、更高效。
排序与顺序调整
这是 Collections 最高频的使用场景,全部针对 List 设计:
-
自然排序:用
Collections.sort(list),要求元素实现Comparable(如 String、Integer); -
自定义排序:传入
Comparator,比如按字符串长度降序:Collections.sort(list, (a, b) -> b.length() - a.length()); -
反转顺序:直接
Collections.reverse(list),原地翻转,不新建对象; -
随机打乱:
Collections.shuffle(list)基于默认随机源,适合洗牌、抽样等场景; -
交换位置:
Collections.swap(list, i, j)高效完成两个索引元素互换; -
循环位移:
Collections.rotate(list, distance),正数向右滚,负数向左滚(如rotate(list, 2)把最后 2 个移到开头)。
查找与极值获取
查找类方法对数据状态有明确前提,用错会返回错误结果:
-
二分查找:必须先确保
list已升序排序,再调用Collections.binarySearch(list, key),否则结果不可信; -
找最大/最小值:
Collections.max(coll)和Collections.min(coll)支持任意Collection(List、Set、Queue),同样依赖元素可比较; - 若集合为空,max/min 会抛出
NoSuchElementException,建议调用前判空。
批量操作与安全增强
这些方法能避免手写循环,也提供关键的安全保障:
-
批量添加:用
Collections.addAll(list, "a", "b", 1, 2),支持可变参数,比逐个 add 更简洁; -
不可修改视图:如
Collections.unmodifiableList(list),返回一个只读包装,任何修改操作都会立即抛UnsupportedOperationException; -
线程安全包装:如
Collections.synchronizedList(list),为非线程安全集合(如 ArrayList)加上同步锁,注意遍历时仍需手动同步迭代块。
避坑要点提醒
几个极易踩中的细节:
- Collection ≠ Collections:前者是接口(如 List、Set 的父接口),后者是工具类,名字多一个 “s” 就是天壤之别;
- 方法作用域不同:addAll、max、min 适用于所有 Collection;但 sort、shuffle、reverse 等仅限 List;
- 原地操作无返回值:所有修改类方法(sort、reverse、shuffle 等)都是 void,直接改变原集合,不生成新集合;
- 空集合要小心:binarySearch 在空 list 上返回 -1;max/min 在空集合上直接异常;shuffle 对空或单元素 list 安全,无副作用。
大量免费API接口:立即使用
涵盖生活服务API、金融科技API、企业工商API、等相关的API接口服务。免费API接口可安全、合规地连接上下游,为数据API应用能力赋能!











