Collections工具类提供静态方法简化集合操作,包括排序(sort、reverse、shuffle)、查找与极值(binarySearch、max/min、frequency)、安全集合构建(unmodifiableList、synchronizedList、emptyList)、批量操作(addAll、swap、copy)等。

Collections 工具类不是集合本身,而是一套专为简化集合操作设计的静态方法集合。它不创建对象、不继承接口,直接通过 Collections.方法名() 调用,核心价值在于把重复、易错的集合逻辑封装成一行代码就能完成的操作。
排序与顺序控制
对 List 的顺序处理是 Collections 最高频的使用场景。自然排序要求元素实现 Comparable(如 Integer、String),自定义排序则靠 Comparator 灵活介入。
-
Collections.sort(list):升序排列,原地修改,无需返回值 -
Collections.sort(list, Comparator.comparing(String::length)):按字符串长度升序 -
Collections.reverse(list):反转已有顺序,常配合 sort 实现降序效果 -
Collections.shuffle(list):随机重排,内部使用默认Random,生产环境如需可重现结果,建议传入指定种子的Random实例
查找与极值提取
避免手写循环遍历,用内置方法快速定位关键数据。注意二分查找的前提是列表已排序,否则结果不可靠。
-
Collections.binarySearch(sortedList, target):仅适用于已排序的 List,返回索引或负插入点 -
Collections.max(list)和Collections.min(list):支持所有Collection,要求元素可比较;也可传入Comparator定制规则,例如按对象某个字段取最大值 -
Collections.frequency(collection, element):统计某元素在集合中出现次数,对 List 或 Set 均适用
安全集合构建
日常开发中常忽略集合的“可变性”风险。Collections 提供的包装方法不改变原始集合结构,而是返回一个具有特定行为约束的新视图。
立即学习“Java免费学习笔记(深入)”;
-
Collections.unmodifiableList(list):返回不可修改的 List 视图,任何 add/remove 操作抛UnsupportedOperationException -
Collections.synchronizedList(list):返回线程安全的 List 包装器,适合读多写少且无法改用CopyOnWriteArrayList的场景 -
Collections.emptyList()、Collections.singleton("x"):轻量级空集合或单元素集合,比 new ArrayList() 更省内存且不可变
批量操作与结构转换
减少 for 循环,提升代码可读性与健壮性。这些方法统一处理边界和类型兼容问题。
-
Collections.addAll(list, "a", "b", "c"):比多次add()更简洁,支持可变参数 -
Collections.swap(list, i, j):安全交换两个位置元素,自动校验索引范围 -
Collections.copy(dest, src):将 src 元素复制到 dest,要求 dest 长度 ≥ src,否则抛IndexOutOfBoundsException

















