Подскажите, пожалуйста: не выполняется требование Метод removeTheFirstNameDuplicates() должен удалять из словаря всех людей, имеющие одинаковые имена.
в чем может быть причина?
я так понимаю, что проблема в методе removeTheFirstNameDuplicates(Map<String, String> map)
но где именно?
код ниже работает в main (без методов public static Map<String, String> createMap() и removeTheFirstNameDuplicates(Map<String, String> map)) без проблем, а с этим методом не работает. хотя все то же самое
Map<String, String> name = new HashMap<>();
name.put("Zaycev", "Nikita");
name.put("Markov", "Sergey");
name.put("Afanasyev", "Aleksey");
name.put("Muradov", "Vladlen");
name.put("Danilin", "Danil");
name.put("Simpson", "Bart");
name.put("Tompson", "Gomer");
name.put("Brodsky", "Marge");
name.put("Alekseyev", "Aleksey");
name.put("Mayakovsky", "Nikita");
Map<String, String> copy = new HashMap<>(name);
for (Map.Entry<String, String> pair : copy.entrySet()) {
String key = pair.getKey();
String value = pair.getValue();
removeItemFromMapByValue(name, value);
}
System.out.println(name);
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> name = new HashMap<>();
name.put("Zaycev", "Nikita");
name.put("Markov", "Sergey");
name.put("Afanasyev", "Aleksey");
name.put("Muradov", "Vladlen");
name.put("Danilin", "Danil");
name.put("Simpson ml", "Bart");
name.put("Tompson", "Gomer");
name.put("Brodsky", "Marge");
name.put("Alekseyev", "Aleksey");
name.put("Mayakovsky", "Nikita");
return name;
}
public static void removeTheFirstNameDuplicates(Map<String, String> map) {
Map<String, String> copy = new HashMap<>(map);
for (Map.Entry<String, String> pair : copy.entrySet()) {
String key = pair.getKey();
String value = pair.getValue();
removeItemFromMapByValue(map, value);
}
}
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()) {
String key = pair.getKey();
String valuePair = pair.getValue();
if (valuePair.equals(value)) {
map.remove(key);
}
}
}
public static void main(String[] args) {
}
}