合并两个列表值映射

保罗

有人知道如何与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}]

我正在寻找一种非冗长的方式(如果存在)。我知道该如何以旧的方式进行。

问候。

Tunaki

总体思路与此帖子相同您可以从第一个地图创建一个新地图,然后在第二个地图上进行迭代,并通过合并每个键与第一个地图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] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章