import java.util.HashMap;
import java.util.Map;
/*
Нам повторы не нужны
*/
public class Solution {
public static HashMap<String, String> createMap() throws Exception {
HashMap <String, String> map = new HashMap<String, String>();
map.put("a", "b");
map.put("b", "b");
map.put("c", "b");
map.put("d", "b");
map.put("e", "b");
map.put("f", "b");
map.put("g", "b");
map.put("h", "b");
map.put("i", "b");
map.put("j", "d");
return map;
}
public static void removeTheFirstNameDuplicates(HashMap<String, String> map) throws Exception {
for (Map.Entry<String, String> pair : map.entrySet()) {
if (map.containsValue(pair.getValue())) {
map.remove(pair.getKey());//напишите тут ваш код
}
}
for (Map.Entry<String, String> pair : map.entrySet()) {
System.out.println(pair);
}
}
public static void main(String[] args) throws Exception {
HashMap <String, String> map = createMap();
removeTheFirstNameDuplicates (map);
}
}Юрий
22 уровень
Подскажите, пожалуйста, почему данный код не удаляет элементы с повторяющимися именами?
Архивный
Комментарии (8)
- популярные
- новые
- старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Руслан Добров
23 декабря 2018, 19:53решение
Дело в том, что для удаления элементов в HashMap необходимо использовать итератор.
+2
Юрий
24 декабря 2018, 20:23
Спасибо, Руслан. Я уже понял)
0
IceBergMaster
23 декабря 2018, 15:39
Разве можно использовать foreach для удаления/изменения?
0
Сергеев ВикторMaster
22 декабря 2018, 18:22
1. У вас вылетает ошибка, она очень легко гуглится, попробуйте сами поискать ответ.
2.
вы итерируетесь по мапе, берете значение элемента и проверяете есть ли он там, как думаете какой будет ответ?
0
Юрий
23 декабря 2018, 13:44
Вот именно, я проверяю, есть ли там это значение. Если оно там есть, я удаляю эту пару. Что не так?
0
Сергеев ВикторMaster
23 декабря 2018, 15:25
вы проверяете есть ли в мапе значение, которое из неё получили, конечно оно там есть ведь вы его получили.
Если перефразировать на человечески ваш код примерно такой
0
Юрий
23 декабря 2018, 15:29
ну, так если я её (купюру) увидел, почему её нельзя удалить?
0
Сергеев ВикторMaster
23 декабря 2018, 15:58
удалить можно, но делать это надо правильно (гуглите исключение которое получаете).
По заданию вам надо удалить не все что видите, а только повторяющиеся элементы
0