当前位置: 首页 > news >正文

CollUtil详解

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 来处理集合相关的逻辑。

http://www.dtcms.com/a/213584.html

相关文章:

  • 游戏引擎学习第311天:支持手动排序
  • 终端没有5G图标-不支持特定NSA频段组合
  • 为什么要使用stream流
  • 篇章四 数据结构——顺序表
  • 52、C# 泛型 (Generics)
  • *HTML `<script>` 标签中的核心属性解析:掌控脚本加载与执行的艺术
  • HTML 文件路径完全指南:相对路径、绝对路径解析与引用技巧
  • 计算机网络-MPLS VPN应用场景与组网
  • React从基础入门到高级实战:React 核心技术 - 表单处理与验证深度指南
  • YOLOv12增加map75指标
  • 深度学习---可视化
  • 华为云Flexus+DeepSeek征文 | Dify-LLM平台一键部署教程及问题解决指南
  • 项目部署一次记录
  • 通过chrome插件自动生成博客评论,高效发外链
  • P5734 【深基6.例6】文字处理软件
  • LVGL(lv_animimg)
  • 当前上下文中不存在名称“X509CertificateLoader”,编译.NET 9依赖
  • 数据库入门教程:以商品订单系统为例
  • LeetCode百题刷004(哈希表优化两数和问题)
  • NGINX 用户标识模块 (ngx_http_userid_module) 完整配置与最佳实践指南
  • 图论:floyed算法
  • java枚举和mybaits-plus结合实现映射输出和存储
  • 图论 判断是否有环
  • sqli-labs第二十八关——Trick with ‘union select‘
  • STM32G0xx基于串口(UART)Ymodem协议实现OTA升级包括Bootloader、上位机、应用程序
  • 语音识别——文本转语音
  • leetcode617.合并二叉树:递归思想下的树结构融合艺术
  • [yolov11改进系列]基于yolov11引入特征增强注意力机制ADNet的python源码+训练源码
  • 深度学习入门6:pytorch卷积神经网络CNN实现手写数字识别准确率99%
  • 从万有引力到深度学习,认识模型思维