【发布时间】:2016-01-10 05:28:57
【问题描述】:
有两张地图,我正在尝试将它们合并为一张地图 (finalResp)。
Map<String, String[]> map1 = new HashMap<>();
Map<String, String> map2 = new HashMap<>();
HashMap<String, String> finalResp = new HashMap<String, String>();
解决方案 - Java 8 之前的 - 实现如下:
for (Map.Entry<String, String[]> entry : map1.entrySet()) {
if (map2.containsKey(entry.getKey())) {
String newValue = changetoAnother(map1.get(entry.getKey()), map2.get(entry.getKey()));
finalResp.put(entry.getKey(), newValue);
}
}
使用 Java 8,我陷入了困境:
HashMap<String, String> map3 = new HashMap<>(map2);
map1.forEach((k, v) -> map3.merge(k, v, (i, j) -> mergeValue(i, j) ));
如何检查地图 1 中是否不存在地图 2 的键并修改值?
【问题讨论】:
标签: java collections lambda java-8 java-stream