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

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.xdnf.cn/news/8914.html

相关文章:

  • 网络安全--PHP第三天
  • 万勋“机器人服务”全新品牌—汎汐®全球首发!独家服务高空建筑清洗、风机运维等场景
  • Flutter Web 3.0革命:用WebGPU实现浏览器端实时光追渲染,性能提升300%
  • ROS2学习(13)------ 数据分发服务DDS
  • Springboot 整合 WebSocket 实现聊天室功能
  • 【部署】在离线服务器的docker容器下升级dify-import程序
  • [论文阅读]Prompt Injection attack against LLM-integrated Applications
  • 探索Linux互斥:线程安全与资源共享
  • 基于机器学习的沪深300指数波动率预测:模型比较与实证分析
  • Linux:多线程---初识线程
  • IEEE Communications Surveys Tutorials 2025年1月-4月论文速览
  • 李宏毅NLP-7-CTC/RNN-T文本对齐
  • 深入理解设计模式之装饰器模式
  • 如何在Windows右键菜单中添加“以管理员身份运行CMD”的选项(含图标设置)
  • 6.4.2_2最短路径算法-Dijkstra算法
  • DAY34
  • Spring | 在Spring中使用@Resource注入List类型的Bean并按优先级排序
  • VMware+Windows 11 跳过安装阶段微软账号登录
  • TSO-DSO接口有功和无功灵活性区域估计
  • 需求管理工具使用不当,如何优化?
  • 今日は進展があまりありませんでした。悪名高いACM
  • RocketMQ 索引文件(IndexFile)详解:结构、原理与源码剖析
  • WebGL3(WebGL or WebGPU?)
  • QTableWidget的函数和信号介绍
  • Android7 Input(九)View 建立Input Pipeline
  • html学习
  • MySQL:索引
  • hugo博客搭建,github部署
  • 前缀和知识笔记
  • 差速器行星齿轮机械加工工艺及工序卡设计