В первом методе берем поочередно все значения из map и передаем во второй метод. Почему он не работает? 2 метод разрешено изменять?
package com.javarush.task.task08.task0817;
import java.util.HashMap;
import java.util.Map;
/*
Нам повторы не нужны
*/
public class Solution {
public static Map<String, String> createMap () {
Map<String, String> map = new HashMap<> ();
map.put ("Ivanov1", "Ivan");
map.put ("Ivanov2", "Ivan");
map.put ("Ivanov3", "Ivan2");
map.put ("Ivanov4", "Ivan3");
map.put ("Ivanov5", "Ivan7");
map.put ("Ivanov6", "Ivan5");
map.put ("Ivanov7", "Ivan2");
map.put ("Ivanov8", "Ivan3");
map.put ("Ivanov9", "Ivan3");
map.put ("Ivanov10", "Ivan3");
return map;
}
public static void removeTheFirstNameDuplicates (Map<String, String> map) {
String duplicate, dupKey;
for (Map.Entry<String, String> item : map.entrySet ()) {
duplicate = item.getValue ();
dupKey = item.getKey ();
for (Map.Entry<String, String> item2 : map.entrySet ()) {
if (item2.getValue ().equals (duplicate) && !item2.getKey ().equals (dupKey))
removeItemFromMapByValue (map, duplicate);
}
}
}
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.getValue ());
}
}
}
public static void main (String[] args) {
removeTheFirstNameDuplicates (createMap ());
}
}