Collections提供操作集合的静态方法,包括排序(sort)、反转(reverse)、查找最值(max/min)、替换(replaceAll)、生成同步集合(synchronizedList)和不可变集合(unmodifiableList)等,提升代码安全与效率。

Collections是Java中一个非常实用的工具类,位于java.util包下,专门用于操作或辅助集合类(如List、Set、Map等)。它提供了一系列静态方法,用来对集合进行排序、查找、同步控制、不可变集合生成等操作。以下是Collections类中一些最常用的实用方法。
1. 排序与逆序
对List类型的集合进行排序或反转顺序:
- Collections.sort(List<T> list):将List中的元素按自然顺序升序排列。元素必须实现Comparable接口。
- Collections.sort(List<T> list, Comparator<? super T> c):根据指定比较器进行排序,适合自定义排序规则。
- Collections.reverse(List<?> list):反转List中元素的顺序。
- Collections.shuffle(List<?> list):随机打乱List中元素的顺序,常用于抽奖或洗牌场景。
2. 查找与替换
在集合中进行常见数据操作:
- Collections.max(Collection<?> coll):返回集合中的最大元素(基于自然顺序)。
- Collections.min(Collection<?> coll):返回最小元素。
- Collections.frequency(Collection<?> c, Object o):统计某个元素在集合中出现的次数。
- Collections.replaceAll(List<?> list, T oldVal, T newVal):将List中所有指定旧值替换为新值。
3. 同步集合包装
将普通集合转换为线程安全的版本:
立即学习“Java免费学习笔记(深入)”;
- Collections.synchronizedList(List<T> list):返回一个线程安全的List。
- Collections.synchronizedSet(Set<T> s):返回线程安全的Set。
- Collections.synchronizedMap(Map<K,V> m):返回线程安全的Map。
- 注意:这些集合在使用迭代时仍需手动加锁,防止并发修改异常。
4. 不可变集合创建
生成只读集合,防止后续被修改:
- Collections.unmodifiableList(List<? extends T> list):返回不可修改的List视图。
- Collections.unmodifiableSet(Set<? extends T> s):返回不可修改的Set。
- Collections.unmodifiableMap(Map<? extends K, ? extends V> m):返回只读Map。
- 一旦尝试修改,会抛出UnsupportedOperationException。
基本上就这些常用方法。它们简化了集合操作,提升代码可读性和安全性,尤其在处理数据排序、线程安全和防御性编程时特别有用。熟练掌握这些方法,能有效减少手动编写重复逻辑的工作量。










