【发布时间】:2017-05-19 22:53:09
【问题描述】:
使用java8,有没有什么简洁的语法可以合并两个map:
Map<String, Map<String, Set<Long>>> m1
Map<String, Map<String, Set<Long>>> m2
并且不要改变m1、m2中的任何元素,甚至改变mergedMap。
例如:
m1 包含 2 个类似的元素:
{
"k1": {
"v1": [
11,
12
]
},
"k2": {
"v2": [
21
]
}
}
m2 包含 3 个元素,如下所示:
{
"k1": {
"v11": [
11
]
},
"k2": {
"v2": [
21,
22
]
},
"k3": {
"v3": [
31
]
}
}
我想要的合并地图是合并的3个元素。
尤其是“k1”的值结合了 m1 和 m2。
{
"k1": {
"v1": [
11,
12
],
"v11": [
11
]
},
"k2": {
"v2": [
21,
22
]
},
"k3": {
"v3": [
31
]
}
}
当我在合并的 Map 中添加一些元素时,哪个键是 >。
我不想再修改原始地图 m2 的元素了。
【问题讨论】:
-
嗯,流可能会有所帮助 - 但目前尚不清楚,您到底想要什么结果?
-
我在我的问题中添加了一个例子,感谢您的回复!
标签: merge hashmap java-8 hashset