如何将2个HashMap合并在一起?

Fre*_*ter 0 java hashmap

我有2个HashMaps类型HashMap<String, Integer>。我想将它们加在一起,使得重复键的值被加在一起,而不是被覆盖。这就是为什么我不能putAll对HashMaps 使用该方法的主要原因。有什么特别的方法可以让我轻松地做到这一点吗?

Mur*_*göz 5

您可以使用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
Run Code Online (Sandbox Code Playgroud)