java - 如何将 2 个 HashMap 合并在一起?
问题描述
我有 2 个 HashMaps 类型HashMap<String, Integer>
。我想以这样的方式将它们添加在一起,即重复键的值被添加在一起,而不是被覆盖。putAll
这是我不能使用HashMaps 的方法的主要原因。有没有一种特殊的方法可以轻松做到这一点?
解决方案
你可以使用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
推荐阅读
- c# - uwp ListView 没有 SelectionChanging 事件
- angular - ExpressionChangedAfterItHasBeenCheckedError: Expression has changed after it was checked - How to update template after Observable Value change
- asp.net-mvc - Angular 和 .net mvc 中的路由
- objective-c - NSUrlSession 代理请求失败,错误代码为 310 (kCFErrorHTTPSProxyConnectionFailure)
- firebase - 运行 Gradle 时出错 - gradlew.bat 异常退出(添加 firebase 后出错)
- javascript - 如何在赛普拉斯自动化工具中处理定位器的动态 ID
- php - 找不到 url 在 url 上发送编码参数
- javascript - 有人可以向我解释一下这个功能的作用是什么
- java - Java Inheritance - Fly(程序)运行时打印什么?
- jquery - wordpress 中的 jQuery onscroll 无法正常工作