pau*_*aul 4 java java-8 java-stream
有人知道如何与Java 8合并这种类型的两张地图吗?
Map<String, List<String>> map1--->["a",{1,2,3}]
Map<String, List<String>> map2--->["a",{4,5,6}]
Run Code Online (Sandbox Code Playgroud)
并获得合并的结果
Map<String, List<String>> map3--->["a",{1,2,3,4,5,6}]
Run Code Online (Sandbox Code Playgroud)
如果存在,我正在寻找一种非冗长的方式.我知道如何以旧时尚的方式做到这一点.
问候.
总的想法是一样的这篇文章.您可以从第一个地图创建一个新地图,迭代第二个地图并将每个键与第一个地图合并,这要归功于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;
}));
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1560 次 |
| 最近记录: |