Abargil Yakubu:
Tengo los siguientes mapas:
Map<String,Map<String,Long>> mapOne;
Map<String,Map<String,Long>> mapTwo;
Los valores dentro de estos mapas se ven algo como:
{
BMW = {
SIZE=1,
SPEED=60
},
AUDI = {
SIZE=5,
SPEED=21
},
SEAT= {
SPEED=15
}
}
Segundo mapa:
{
Suzuki = {
WHEELS_SIZE=2,
DOORS=3
},
AUDI = {
WHEELS_SIZE=5,
DOORS=5
},
SEAT= {
DOORS=4
}
}
Quiero el mapa después de la fusión a ser:
{
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
},
}
Por eso quiero hacer la fusión, y combinar los valores de claves duplicadas. Creo que debe ser algo como esto:
mapTwo.forEach((k, v) -> mapOne.merge(k, v, ..... ));
Eran :
Puedes escribir:
mapTwo.forEach((k, v) -> mapOne.merge(k, v, (v1,v2) -> {
v1.putAll(v2);
return v1;
}));
Esto modificará mapOne
para incluir las entradas de mapTwo
, mientras que la fusión de los interiores Map
s de llaves comunes.