@Davidaa_WoW

Как удалить из hashmap все элементы с одинаковым значением?

Есть у нас hashMap типа HashMap <String, String> map = new HashMap<>();
Во второй строке могут повторятся значения, как мне после добавления всех элементов удалить все с одинаковыми значениями? Итерировался бы хешмеп как массив, задача была бы лёгкой, а так, что-то не понимаю.
  • Вопрос задан
  • 469 просмотров
Решения вопроса 1
@odissey_nemo
Программист, ГИС-системы, растры, космоснимки
Создаёшь новый пустой HashMap newMap - это будет результат.
Создаёшь пустой Set newSet - через него будем фильтровать значения.
Из заданного HashMap oldMap получаем все ключи из oldMap (key) как keySet - это набор всех ключей твоего oldMap.
Проходишь по oldMap с помощью keySet, извлекая поочерёдно значения (val) из oldMap.
Каждое значение val проверяешь на наличие его в newSet.
Если оно там присутствует, ты нашёл ключ к дублированному в oldMap значению val и не сохраняешь его.
Если val в newSet отсутствует, помещаешь его туда и копируешь пару key<->val из oldMap в newMap;

После конца алгоритма в newMap имеешь набор только уникальных значений.
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
xez
@xez Куратор тега Java
TL Junior Roo
Он итерируется.
Методы .entrySet() .forEach((a, b) -> ...)
Ответ написан
Erik_Mironov
@Erik_Mironov
Старые вопросы: *Dies from cringe*
Использовать HashSet, если использование HashMap не обязательное условие задачи.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы