首页 > 解决方案 > 如何将 2 个 HashMap 合并在一起?

问题描述

我有 2 个 HashMaps 类型HashMap<String, Integer>。我想以这样的方式将它们添加在一起,即重复键的值被添加在一起,而不是被覆盖。putAll这是我不能使用HashMaps 的方法的主要原因。有没有一种特殊的方法可以轻松做到这一点?

标签: javahashmap

解决方案


你可以使用Map#merge例如

 Map<String, Integer> map1 = new HashMap<>();
 Map<String, Integer> map2 = new HashMap<>();

 map1.put("a", 1);
 map2.put("a", 2);

 Map<String, Integer> map3 = new HashMap<>(map1);
 map2.forEach((key, value) -> map3.merge(key, value, (v1,v2) -> v1+v2));
 System.out.println(map3); // a=3

推荐阅读