CollUtil
是 Hutool 工具库中的一个工具类,专门用于操作集合(Collection)。它提供了许多静态方法,可以简化对集合的常见操作,例如判断集合是否为空、合并集合、过滤集合等。
以下是关于 CollUtil
的详细介绍和常用方法:
1. CollUtil
的主要功能
CollUtil
提供了丰富的集合操作方法,涵盖以下方面:
- 集合判空:检查集合是否为空或非空。
- 集合创建:快速创建集合(如 List、Set)。
- 集合操作:合并、交集、差集、去重等。
- 集合过滤:根据条件过滤集合中的元素。
- 集合转换:将集合转换为其他形式(如 Map、数组)。
- 集合排序:对集合进行排序。
2. 常用方法
(1)集合判空
// 判断集合是否为空
boolean isEmpty = CollUtil.isEmpty(collection);
// 判断集合是否非空
boolean isNotEmpty = CollUtil.isNotEmpty(collection);
- 如果集合为
null
或长度为 0,则isEmpty
返回true
。
(2)集合创建
Hutool 提供了一些快捷方法来创建集合:
// 快速创建 List
List<String> list = CollUtil.newArrayList("A", "B", "C");
// 快速创建 Set
Set<String> set = CollUtil.newHashSet("A", "B", "C");
(3)集合操作
合并集合
List<String> list1 = CollUtil.newArrayList("A", "B");
List<String> list2 = CollUtil.newArrayList("C", "D");
// 合并两个集合
List<String> mergedList = CollUtil.addAll(list1, list2);
求交集
List<String> list1 = CollUtil.newArrayList("A", "B", "C");
List<String> list2 = CollUtil.newArrayList("B", "C", "D");
// 求两个集合的交集
List<String> intersection = CollUtil.intersection(list1, list2); // ["B", "C"]
求差集
List<String> list1 = CollUtil.newArrayList("A", "B", "C");
List<String> list2 = CollUtil.newArrayList("B", "C", "D");
// 求 list1 中有但 list2 中没有的元素
List<String> difference = CollUtil.subtract(list1, list2); // ["A"]
去重
List<String> list = CollUtil.newArrayList("A", "B", "A", "C");
// 去重后的集合
List<String> distinctList = CollUtil.distinct(list); // ["A", "B", "C"]
(4)集合过滤
List<Integer> numbers = CollUtil.newArrayList(1, 2, 3, 4, 5);
// 过滤出大于 3 的数字
List<Integer> filteredList = CollUtil.filter(numbers, num -> num > 3); // [4, 5]
(5)集合转换
List<String> list = CollUtil.newArrayList("A", "B", "C");
// 将集合转换为数组
String[] array = CollUtil.toArray(list, String.class);
// 将集合转换为 Map
Map<String, Integer> map = CollUtil.toMap(list, String::toString, String::length);
// 结果: {"A": 1, "B": 1, "C": 1}
(6)集合排序
List<Integer> numbers = CollUtil.newArrayList(5, 3, 8, 1);
// 升序排序
CollUtil.sort(numbers); // [1, 3, 5, 8]
// 自定义排序规则
CollUtil.sort(numbers, (a, b) -> b - a); // [8, 5, 3, 1]
3. 与其他工具类的对比
(1)与 Java 标准库的对比
Java 标准库中也有一些集合操作方法(如 Collections
类),但它们的功能相对有限。CollUtil
提供了更多便捷的方法,例如集合的交集、差集、过滤等。
(2)与 Apache Commons Collections 的对比
Apache Commons Collections 也提供了类似的集合工具类(如 CollectionUtils
),但 CollUtil
更加轻量级,且功能更丰富。
4. 依赖引入
要使用 CollUtil
,需要在项目中引入 Hutool 工具库:
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.8.20</version>
</dependency>
5. 总结
CollUtil
是 Hutool 工具库中非常实用的一个工具类,能够极大地简化集合操作。它的主要优势包括:
- 功能丰富:提供集合判空、合并、交集、差集、过滤、转换等多种操作。
- 使用方便:方法命名直观,调用简单。
- 性能优化:相比手动实现集合操作,
CollUtil
提供了高效的实现方式。
如果你正在使用 Hutool 工具库,强烈推荐尝试 CollUtil
来处理集合相关的逻辑。