0
点赞
收藏
分享

微信扫一扫

Java8 合并 List<Map>,为一个大Map

DYBOY 2022-03-13 阅读 96
-----数据
[{gailun=刘备},{zhaoxin=关羽},{ruiwen=张飞}]
 
-----目标
{gailun=刘备,zhaoxin=关羽,ruiwen=张飞}

第一种

List<Map<String,Object>> lists=new ArrayList<>();
Map<String, Object> merged = new HashMap<>();
lists.forEach(merged::putAll);

第二种

// 不想覆盖,保留最初的值: 
List<Map<String,Object>> lists=new ArrayList<>();
lists.stream().flatMap(m -> m.entrySet().stream())
              .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a, b) -> a));
              
// 覆盖key相同的值:
List<Map<String,Object>> lists=new ArrayList<>();
lists.stream().flatMap(m -> m.entrySet().stream())
              .collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue, (a, b) -> b)); 
举报

相关推荐

0 条评论