У меня есть следующие карты:Обновление карты в Java
Map <String,String> m; // contains part details
Map <String,String> n; // contains part details
Map <String,String> o; // the new map that contains both m and n.
- Я хочу скопировать значения из
m
в о первой. - I then want to loop while
n
и сравнивать ключи наo
. Если ключ отn
, не существует вo
, тогда введите ключ/значение в значениеo
.
Я попытался ниже, но второй шаг не работает (значения не копировать)
for (Map.Entry<String, String> entry : m.entrySet())
{
String key = entry.getKey();
String value =entry.getValue();
o.put(key, value);
}
for (Map.Entry<String, String> entry : n.entrySet())
{
String key = entry.getKey();
String value =entry.getValue();
for (Map.Entry<String, String> entry1 : o.entrySet())
{
String key1 = entry.getKey();
if(key1 != key)
{
o.put(key,value);
}
}
}
это s очень простой. вы должны попытаться сделать это сами. – DarthVader
Посмотрите здесь http://stackoverflow.com/questions/4701960/union-of-two-or-more-hashmaps – Tala
Ошибка в 'String key1 = entry.getKey();' она должна быть 'String key1 = entry1 .getKey(); '. В вашем ключе ключевого ключа1 это то же самое, что и ключ. Вы также должны использовать equals вместо! =, Поскольку ключ 2 может быть другим объектом, представляющим один и тот же ключ. Но 'addAll' сделает ваш код лучше. – Kazaag