У меня есть карта с повторяющимися значениями:Удалить повторяющиеся значения из HashMap в Java
("A", "1");
("B", "2");
("C", "2");
("D", "3");
("E", "3");
Я хотел бы карту, чтобы иметь
("A", "1");
("B", "2");
("D", "3");
Вы знаете, как избавиться от дубликата значения?
В настоящее время я получаю сообщение об ошибке «java.util.ConcurrentModificationException».
спасибо.
public static void main(String[] args) {
HashMap<String, String> map = new HashMap<String, String>();
map.put("A", "1");
map.put("B", "2");
map.put("C", "2");
map.put("D", "3");
map.put("E", "3");
Set<String> keys = map.keySet(); // The set of keys in the map.
Iterator<String> keyIter = keys.iterator();
while (keyIter.hasNext()) {
String key = keyIter.next();
String value = map.get(key);
System.out.println(key + "\t" + value);
String nextValue = map.get(key);
if (value.equals(nextValue)) {
map.remove(key);
}
}
System.out.println(map);
}
Почему вы держите 'B' и оставьте' C'? Помните: 'HashMap' не поддерживает порядок вставленных элементов. –
Можете ли вы сказать точное требование? Похоже, вы хотите уникальные ценности. HashMap может предоставить вам уникальные ключи. Будет ли инвертировать ключ и значение для вас достаточно? – midhunhk
@RohitJain +1 Вот в чем вопрос! – NINCOMPOOP