Не могу понять почему оно не удаляет повторяющиеся имена из словаря, помогите пожалйста
package com.javarush.task.task08.task0817;
import java.util.HashMap;
import java.util.Map;
/*
Нам повторы не нужны
*/
public class Solution {
public static HashMap<String, String> createMap() {
HashMap<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) {
HashMap<String, String> copy1 = new HashMap<String, String>(map);
HashMap<String, String> copy2 = new HashMap<String, String>(map);
int countRepeats = 0;
for (Map.Entry<String, String> pair1 : copy1.entrySet()) {
for (Map.Entry<String, String> pair2 : copy2.entrySet()) {
if (pair1.getValue().equals(pair2.getValue())){ countRepeats++;}
if (countRepeats > 0) {
removeItemFromMapByValue(map, pair2.getValue());
countRepeats = 0;
}
}
countRepeats = 0;
}
}
public static void removeItemFromMapByValue(Map<String, String> map, String value) {
HashMap<String, String> copy = new HashMap<String, String>(map);
for (Map.Entry<String, String> pair : copy.entrySet()) {
if (pair.getValue().equals(value))
map.remove(pair.getKey());
}
}
public static void main(String[] args) {
// System.out.println(createMap());
//removeTheFirstNameDuplicates(createMap());
// System.out.println(createMap());
}
}