我有以下地图:
Map<String,Map<String,Long>> mapOne;
Map<String,Map<String,Long>> mapTwo;
这些映射中的值看起来像:
{
BMW = {
SIZE=1,
SPEED=60
},
AUDI = {
SIZE=5,
SPEED=21
},
SEAT= {
SPEED=15
}
}
第二张地图:
{
Suzuki = {
WHEELS_SIZE=2,
DOORS=3
},
AUDI = {
WHEELS_SIZE=5,
DOORS=5
},
SEAT= {
DOORS=4
}
}
我希望合并后的地图为:
{
BMW = {
SIZE=1,
SPEED=60
},
AUDI = {
SIZE=5,
SPEED=21,
WHEELS_SIZE=5,
DOORS=5
},
SEAT= {
SPEED=15,
DOORS=4
},
Suzuki = {
WHEELS_SIZE=2,
DOORS=3
},
}
所以我想进行合并,并合并重复键的值。我相信应该是这样的:
mapTwo.forEach((k, v) -> mapOne.merge(k, v, ..... ));
答案 0 :(得分:2)
您可以写:
mapTwo.forEach((k, v) -> mapOne.merge(k, v, (v1,v2) -> {
v1.putAll(v2);
return v1;
}));
这将修改mapOne
以包括mapTwo
的条目,同时合并公共密钥的内部Map
。