有人知道如何与Java 8合并这种类型的两个地图吗?
Map<String, List<String>> map1--->["a",{1,2,3}]
Map<String, List<String>> map2--->["a",{4,5,6}]
并获得合并的结果
Map<String, List<String>> map3--->["a",{1,2,3,4,5,6}]
我正在寻找一种非冗长的方式(如果存在)。我知道该如何以旧的方式进行。
问候。
总体思路与此帖子相同。您可以从第一个地图创建一个新地图,然后在第二个地图上进行迭代,并通过合并每个键与第一个地图merge(key, value, remappingFunction)
。发生冲突时,将应用重新映射功能:在这种情况下,它将两个列表合并在一起;如果没有冲突,则放置具有给定键和值的条目。
Map<String, List<String>> mx = new HashMap<>(map1);
map2.forEach((k, v) -> mx.merge(k, v, (l1, l2) -> {
List<String> l = new ArrayList<>(l1);
l.addAll(l2);
return l;
}));
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句