Hutool Hutool
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
(opens new window)
🏡首页
📖指南
🎢最佳实践
💖支持
💡javaDoc (opens new window)
⏳更新记录 (opens new window)
  • 🍎gitee (opens new window)
  • 🍏github (opens new window)
  • 快速入门

  • 核心(hutool-core)

    • AI(Hutool-ai)

    • 注解(annotation)

    • 数组(array)

    • JavaBean(bean)

    • 缓存(cache)

    • 类加载器(classloader)

    • 编码解码(codec)

    • 集合(collection)

      • 简介
      • 集合工具-CollUtil
        • 📚简介
        • 集合判空
          • 判断集合是否为空
          • 判断集合是否非空
        • 集合去重
          • 根据元素去重
          • 根据生成的唯一键去重
        • 集合的并集、交集、差集
          • 并集
          • 交集
          • 差集
        • 集合转换为字符串
          • 以分隔符连接集合
        • 集合的编辑和过滤
          • 根据条件编辑集合
          • 过滤集合元素
        • 获取集合的第一个或最后一个元素
          • 获取第一个元素
          • 获取最后一个元素
        • 集合排序
          • 根据属性排序
          • 根据拼音排序
      • 集合流工具-CollStreamUtil
      • 列表工具-ListUtil
      • 环形索引工具-RingIndexUtil
      • 分割迭代器工具-SpliteratorUtil
      • 迭代器工具-IterUtil
      • 集合工具-SetUtil
    • 比较器(comparator)

    • 压缩(compress)

    • 类型转换(convert)

    • 数据(data)

    • 日期时间(date)

    • 异常(exception)

    • 函数(func)

    • IO流(io)

    • 语言特性(lang)

    • Map(map)

    • 数字数学(math)

    • 网络(net)

    • 对象池(pool)

    • 反射(reflect)

    • 正则(regex)

    • 服务提供(spi)

    • 聚合操作(stream)

    • 字符串文本(text)

    • 并发和线程(thread)

    • 树结构(tree)

    • 工具集合(util)

    • XML操作(xml)

  • 定时任务(hutool-cron)

  • 加密(hutool-crypto)

  • 数据库(hutool-db)

  • 扩展(hutool-extra)

  • HTTP(hutool-http)

  • 日志(hutool-log)

  • 配置文件(hutool-setting)

  • JSON(hutool-json)

  • Office办公(hutool-poi)

  • 套接字(hutool-socket)

  • GUI(hutool-swing)

  • 指南
  • 核心(hutool-core)
  • 集合(collection)
Hutool
2026-01-03
目录

集合工具-CollUtil

# 📚简介

CollUtil是Hutool中用于操作集合的强大工具类,提供了丰富的集合操作方法,涵盖了判断、操作、转换等多个方面,使得对集合的操作更加简便和高效。

# 集合判空

# 判断集合是否为空

CollUtil 提供了多种判空方法,可以针对Collection、Iterable、Iterator、Enumeration等类型进行空值判断。

final List<String> list = new ArrayList<>();
// true
CollUtil.isEmpty(list);

对于Map类型,也有相应的判空方法:

final Map<String, String> map = new HashMap<>();
// true
CollUtil.isEmpty(map);

# 判断集合是否非空

同样,CollUtil 提供了判断集合是否非空的方法。

final List<String> list = Arrays.asList("a", "b", "c");
// true
CollUtil.isNotEmpty(list);

# 集合去重

# 根据元素去重

CollUtil.distinct方法可以去除集合中的重复元素,保留顺序。

final List<String> list = Arrays.asList("a", "b", "c", "a", "b");
// ["a", "b", "c"]
final List<String> distinctList = CollUtil.distinct(list);

# 根据生成的唯一键去重

可以根据元素的某个属性进行去重,保留第一个或最后一个元素。

final List<String> list = Arrays.asList("a", "A", "b", "B");
// 保留第一个出现的元素
final List<String> distinctList = CollUtil.distinct(list, String::toLowerCase, false);

# 集合的并集、交集、差集

# 并集

计算多个集合的并集,保留所有元素。

final List<String> list1 = Arrays.asList("a", "b", "c");
final List<String> list2 = Arrays.asList("b", "c", "d");
// ["a", "b", "c", "b", "c", "d"]
final List<String> union = CollUtil.unionAll(list1, list2);

# 交集

计算多个集合的交集,仅保留所有集合共有的元素。

final List<String> list1 = Arrays.asList("a", "b", "c");
final List<String> list2 = Arrays.asList("b", "c", "d");
// ["b", "c"]
final List<String> intersection = CollUtil.intersection(list1, list2);

# 差集

计算集合的差集,仅保留在第一个集合中但不在第二个集合中的元素。

final List<String> list1 = Arrays.asList("a", "b", "c");
final List<String> list2 = Arrays.asList("b", "c", "d");
// ["a"]
final List<String> subtract = CollUtil.subtract(list1, list2);

# 集合转换为字符串

# 以分隔符连接集合

CollUtil.join可以将集合元素转换为字符串,并以指定分隔符连接。

final List<String> list = Arrays.asList("a", "b", "c");
// "a,b,c"
final String result = CollUtil.join(list, ",");

# 集合的编辑和过滤

# 根据条件编辑集合

通过CollUtil.edit方法,可以根据给定的函数对集合元素进行编辑,生成一个新的集合。

final List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
// [1, 4, 9, 16, 25]
final List<Integer> squareList = CollUtil.edit(list, x -> x * x);

# 过滤集合元素

使用CollUtil.filter方法可以对集合进行过滤,保留符合条件的元素。

final List<Integer> list = Arrays.asList(1, 2, 3, 4, 5);
// [2, 4]
final List<Integer> evenList = CollUtil.filter(list, x -> x % 2 == 0);

# 获取集合的第一个或最后一个元素

# 获取第一个元素

final List<String> list = Arrays.asList("a", "b", "c");
// "a"
final String first = CollUtil.getFirst(list);

# 获取最后一个元素

final List<String> list = Arrays.asList("a", "b", "c");
// "c"
final String last = CollUtil.getLast(list);

# 集合排序

# 根据属性排序

CollUtil提供了按属性排序的方法。

class User {
    private String name;
    private int age;
    // getter and setter
}

final List<User> users = Arrays.asList(new User("Alice", 25), new User("Bob", 20));
// 根据age排序
final List<User> sortedUsers = CollUtil.sortByProperty(users, "age");

# 根据拼音排序

还可以根据汉字的拼音顺序对集合进行排序。

final List<String> list = Arrays.asList("张三", "李四", "王五");
// ["李四", "王五", "张三"]
final List<String> sortedList = CollUtil.sortByPinyin(list);
简介
集合流工具-CollStreamUtil

← 简介 集合流工具-CollStreamUtil→

Theme by Vdoing | Copyright © 2025-2026 Hutool | Apache-2.0
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式