При запуске программы не выходит строка "Process finished with exit code ..." и программа висит как будто где-то бесконечный цикл. Подскажите пожалуйста в чем может быть проблема?
package com.javarush.task.jdk13.task08.task0817;
import java.util.*;
/*
Удалить людей, имеющих одинаковые имена
*/
public class Solution {
public static Map<String, String> createMap() {
//напишите тут ваш код
Map<String, String> map = new HashMap<>();
map.put("Кадецкий", "Андрей");
map.put("Кадецкая", "Татьяна");
map.put("Тюрина", "Алина");
map.put("Тюрин", "Женя");
map.put("Задорожний", "Андрей");
map.put("Сивунов", "Юрий");
map.put("Мироненко", "Максим");
map.put("Свистильник", "Юрий");
map.put("Гилевский", "Максим");
map.put("Гилевская", "Алина");
return map;
}
public static void removeTheFirstNameDuplicates(Map<String, String> map) {
//напишите тут ваш код
Collection<String> list = map.values();
for (Iterator<String> itr = list.iterator(); itr.hasNext(); ) {
if (Collections.frequency(list, itr.next()) > 1) {
removeItemFromMapByValue(map, itr.next());
}
}
}
public static void removeItemFromMapByValue(Map<String, String> map, String value) {
Map<String, String> copy = new HashMap<>(map);
for (Map.Entry<String, String> pair : copy.entrySet()) {
if (pair.getValue().equals(value)) {
map.remove(pair.getKey());
}
}
}
public static void main(String[] args) {
Map<String, String> map = new HashMap<>();
map.put("Кадецкий", "Андрей");
map.put("Кадецкая", "Татьяна");
map.put("Тюрина", "Алина");
map.put("Тюрин", "Женя");
map.put("Задорожний", "Андрей");
map.put("Сивунов", "Юрий");
map.put("Мироненко", "Максим");
map.put("Свистильник", "Юрий");
map.put("Гилевский", "Максим");
map.put("Гилевская", "Алина");
createMap();
removeTheFirstNameDuplicates(map);
System.out.println(map);
}
}