Обновление одного ключа карты с другой карты Значение - PullRequest
0 голосов
/ 16 мая 2018

У меня есть одна HashMap с именем list, которая содержит несколько key/values.У меня есть еще один HashMap с именем modify, который содержит другой набор key/values.

В основном хэш-карта modify должна содержать ключ (или ключи), которые соответствуют ключу в listи я хочу обновить ключ в list до значения, соответствующего этому ключу в modify.

Я попытался:

iter = modifyList.entrySet().iterator();
while(iter.hasNext()) {
     list.replace(iter.next().getKey(), iter.next().getValue());
}

Однако вы столкнулись с проблемойгде, когда вы вызываете iter.next().getKey(), он, очевидно, выполняет итерацию вперед, поэтому теперь нужное мне значение больше не находится в next(), а вместо этого находится в current.Однако я не могу найти какой-либо способ получить доступ к тому, что находится в current

У кого-нибудь есть какие-либо предложения о том, как лучше всего это сделать?

1 Ответ

0 голосов
/ 16 мая 2018

Попробуйте перебрать ключ и значение:

modifyList.forEach(list::replace);

Что совпадает с:

modifyList.forEach((k, v) -> list.replace(k, v));

Теперь, если вы хотите переназначить сами ключи, вы можете использоватькомбинация put и remove:

modifyList.forEach((k, v) -> list.put(v, list.remove(k)));
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...