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)

    • 比较器(comparator)

    • 压缩(compress)

    • 类型转换(convert)

    • 数据(data)

    • 日期时间(date)

    • 异常(exception)

    • 函数(func)

    • IO流(io)

    • 语言特性(lang)

    • Map(map)

    • 数字数学(math)

    • 网络(net)

    • 对象池(pool)

    • 反射(reflect)

    • 正则(regex)

    • 服务提供(spi)

    • 聚合操作(stream)

      • 聚合操作模块
      • 流工具-StreamUtil
      • 收集器工具-CollectorUtil
      • Map Entry流-EntryStream
        • 1. EntryStream的创建
          • 1.1 从Map创建EntryStream
          • 1.2 从Entry集合创建EntryStream
        • 2. EntryStream的操作
          • 2.1 过滤操作
          • 2.2 映射操作
          • 2.3 转换操作
        • 3. EntryStream的聚合操作
          • 3.1 统计操作
          • 3.2 最值操作
        • 4. EntryStream的其他操作
          • 4.1 排序操作
          • 4.2 去重操作
          • 4.3 遍历操作
        • 5. EntryStream的实际应用
          • 5.1 Map的键值处理
          • 5.2 Map的过滤和转换
        • 6. 适用场景
    • 字符串文本(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)
  • 聚合操作(stream)
Hutool
2026-01-03
目录

Map Entry流-EntryStream

EntryStream是Hutool中专门用于处理Map Entry的流工具类,提供了丰富的Entry流操作方法,让Map的流处理更加便捷和强大。

# 1. EntryStream的创建

# 1.1 从Map创建EntryStream

// 从Map创建EntryStream
Map<Integer, String> map = new HashMap<>();
map.put(1, "张三");
map.put(2, "李四");
map.put(3, "王五");

EntryStream<Integer, String> entryStream = EntryStream.of(map);

# 1.2 从Entry集合创建EntryStream

// 从Entry集合创建EntryStream
Set<Map.Entry<Integer, String>> entries = map.entrySet();
EntryStream<Integer, String> entryStream = EntryStream.of(entries);

# 2. EntryStream的操作

# 2.1 过滤操作

// 过滤键大于1的Entry
EntryStream<Integer, String> filteredStream = entryStream.filter(entry -> entry.getKey() > 1);

// 过滤值包含"张"的Entry
EntryStream<Integer, String> filteredStream = entryStream.filterValue(value -> value.contains("张"));

# 2.2 映射操作

// 映射键
Stream<Integer> keyStream = entryStream.keys();

// 映射值
Stream<String> valueStream = entryStream.values();

// 映射为新的键值对
EntryStream<String, Integer> mappedStream = entryStream.map((key, value) -> new AbstractMap.SimpleEntry<>(value, key));

# 2.3 转换操作

// 转换为List
List<Map.Entry<Integer, String>> entryList = entryStream.toList();

// 转换为Map
Map<Integer, String> resultMap = entryStream.toMap();

// 转换为LinkedHashMap(保持插入顺序)
LinkedHashMap<Integer, String> linkedHashMap = entryStream.toLinkedMap();

# 3. EntryStream的聚合操作

# 3.1 统计操作

// 统计Entry数量
long count = entryStream.count();

# 3.2 最值操作

// 求键的最大值
Optional<Integer> maxKey = entryStream.maxKey();

// 求键的最小值
Optional<Integer> minKey = entryStream.minKey();

// 求值的最大值
Optional<String> maxValue = entryStream.maxValue();

// 求值的最小值
Optional<String> minValue = entryStream.minValue();

# 4. EntryStream的其他操作

# 4.1 排序操作

// 按键排序
EntryStream<Integer, String> sortedByKeyStream = entryStream.sortedByKey();

// 按值排序
EntryStream<Integer, String> sortedByValueStream = entryStream.sortedByValue();

// 自定义排序
EntryStream<Integer, String> sortedStream = entryStream.sorted((entry1, entry2) -> entry1.getValue().compareTo(entry2.getValue()));

# 4.2 去重操作

// 根据值去重
EntryStream<Integer, String> distinctStream = entryStream.distinctByValue();

# 4.3 遍历操作

// 遍历Entry
entryStream.forEach(entry -> Console.log(entry.getKey() + ": " + entry.getValue()));

// 遍历键值对
entryStream.forEach((key, value) -> Console.log(key + ": " + value));

# 5. EntryStream的实际应用

# 5.1 Map的键值处理

// Map键值互换
Map<Integer, String> originalMap = new HashMap<>();
originalMap.put(1, "张三");
originalMap.put(2, "李四");

Map<String, Integer> reversedMap = EntryStream.of(originalMap)
    .map((key, value) -> new AbstractMap.SimpleEntry<>(value, key))
    .toMap();

# 5.2 Map的过滤和转换

// 过滤并转换Map
Map<Integer, String> map = new HashMap<>();
map.put(1, "张三");
map.put(2, "李四");
map.put(3, "王五");

// 过滤出键大于1的值,并转换为List
List<String> resultList = EntryStream.of(map)
    .filter(entry -> entry.getKey() > 1)
    .values()
    .collect(Collectors.toList());

# 6. 适用场景

EntryStream适用于以下场景:

  • 需要对Map的Entry进行复杂处理时
  • 需要对Map的键和值进行联合操作时
  • 需要便捷地将Map转换为其他数据结构时
  • 希望使用更友好的API处理Map的流操作时
  • 需要对Map的Entry进行过滤、映射、排序等操作时

通过EntryStream,开发者可以更加便捷地处理Map的Entry流,编写更简洁、更易维护的代码,同时享受到函数式编程带来的好处。

收集器工具-CollectorUtil
文本(text)模块简介

← 收集器工具-CollectorUtil 文本(text)模块简介→

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