Java中的Collections工具类提供丰富的静态方法操作集合。1. 排序与反转:sort()按自然顺序或比较器排序,reverse()反转列表。2. 查找与替换:max()/min()找最值,frequency()统计元素频次,replaceAll()替换元素。3. 同步控制:synchronizedList/Set/Map()创建线程安全集合,遍历时需手动同步。4. 不可变集合:unmodifiableList/Set/Map()生成只读集合。5. 其他方法:fill()填充列表,copy()复制列表,swap()交换两元素,rotate()循环移动元素。熟练使用可提升开发效率与代码安全性。

Java中的Collections工具类是集合操作的实用类,位于java.util包中,提供了大量静态方法用于操作或返回集合。它能帮助开发者更方便地对List、Set、Map等集合进行排序、查找、同步控制等操作。以下是常用方法的整理和说明。
排序与反转
Collections提供了对List进行排序和反转的方法:
-
sort(List
list) :根据元素的自然顺序对List进行升序排序。要求元素实现Comparable接口。 -
sort(List
list, Comparator super T> c) :根据指定比较器进行排序,适合自定义排序规则。 - reverse(List> list):反转List中元素的顺序。
例如,对字符串List按字母逆序排列:
ListCollections.sort(words); // 自然排序
Collections.reverse(words); // 反转
查找与替换
该类提供了一些常用的查找和替换操作:
立即学习“Java免费学习笔记(深入)”;
- max(Collection> coll) 和 min(Collection> coll):返回集合中的最大或最小元素,依据自然顺序。
- max(Collection> coll, Comparator super T> comp):使用自定义比较器查找最值。
- replaceAll(List> list, T oldVal, T newVal):将List中所有指定旧值替换为新值。
- frequency(Collection> c, Object o):返回集合中指定元素出现的次数。
比如统计某个数字在List中出现多少次:
doxygen是一款好用的程序员辅助工具,它可以让程序添加批添代码更加简单轻松,兼容C++、 C、Java、 Objective-C、Python等主流编程语言,小编提供的doxygen中文手册包含了基本介绍、语法技巧以及进阶技巧等内容,可以让你快速上手操作,有需要的欢迎下载。 基本介绍 Doxygen已经支持生成ANSI编码的chm目录文件(index.hhc)!Doxygen通常是用作生成英文文档的,生成中文文档需要修改输入和输出的码制,这样可以改变解析方式,生成中文文档。但是,你必须意识 到,Dox
int count = Collections.frequency(nums, 2); // 返回3
同步控制与不可变集合
在多线程环境下,可以使用Collections提供的同步包装方法:
-
synchronizedList(List
list) :返回一个线程安全的List。 -
synchronizedSet(Set
s) :返回线程安全的Set。 -
synchronizedMap(Map
m) :返回线程安全的Map。
注意:获取迭代器时仍需手动同步:
Listsynchronized(syncList) {
Iterator
while (it.hasNext()) { /* 遍历 */ }
}
此外,可用unmodifiableList、unmodifiableSet、unmodifiableMap创建只读集合,防止修改。
其他实用方法
- fill(List super T> list, T obj):用指定元素替换List中所有元素。
- copy(List super T> dest, List extends T> src):将源List内容复制到目标List,目标List大小不能小于源List。
- swap(List> list, int i, int j):交换List中两个位置的元素。
- rotate(List> list, int distance):将List中的元素向右循环移动指定距离。
例如旋转列表:
ListCollections.rotate(list, 2); // 结果为 [4, 5, 1, 2, 3]
基本上就这些。掌握这些方法能显著提升集合操作效率,减少手动编码出错的可能。









