You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用Stream迭代List<Map<String, String>>

当然可以用Stream实现这个迭代逻辑!

你原来的嵌套循环写法是这样的:

for (Map<String, String> temp1 : maps) {
    for(Map.Entry<String, String> temp2 : temp1.entrySet()) {
        // 这里是你对每个entry的处理逻辑
    }
}

用Java Stream完全可以实现等价的迭代,而且写法更简洁,还能方便地添加中间操作(比如过滤、映射)。核心是用flatMap把外层List中每个Map的entrySet“扁平化”成一个连续的流,然后用forEach处理每个Entry:

maps.stream()
    .flatMap(map -> map.entrySet().stream())
    .forEach(entry -> {
        // 这里写你对每个entry的处理逻辑,比如打印键值对:
        // System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
    });

简单解释下这个Stream流程:

  • maps.stream():把外层的List<Map<String,String>>转换成Stream<Map<String,String>>
  • flatMap(map -> map.entrySet().stream()):把每个Map转换成它的entrySet的Stream,然后将所有这些小流合并成一个大的Stream<Map.Entry<String,String>>,这样就实现了原来嵌套循环的效果
  • forEach(...):遍历每个Entry,执行你的业务逻辑

如果之后需要扩展功能,比如只想处理键为"name"的Entry,直接在中间加个filter就行,非常灵活:

maps.stream()
    .flatMap(map -> map.entrySet().stream())
    .filter(entry -> "name".equals(entry.getKey()))
    .forEach(entry -> System.out.println("Name value: " + entry.getValue()));

内容的提问来源于stack exchange,提问作者JavaLearner1

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.21 07:36:00