Код удаляет все одинаковые имена.
Подскажите что делаю не правильно...
package com.javarush.task.task08.task0817;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/*
Нам повторы не нужны
*/
public class Solution {
public static HashMap<String, String> createMap() {
//•соз-ть и воз-ть словарь HashMap с типом эл-в String, Str. состоящих из 10 «фамилия» - «имя»
HashMap<String, String> map = new HashMap<>();
for (int i = 0; i < 8; i++) { map.put("Famyli" + i, "Name" + i ); }
map.put("Famyli" + 8, "Name" + 2 );
map.put("Famyli" + 9, "Name" + 3 );
return map;
}
public static Map<String, String> removeTheFirstNameDuplicates(Map<String, String> map) {
//• Метод removeTheFirstNameDuplicates() должен удалять из словаря всех людей, имеющие одинаковые имена.
//• Метод removeTheFirstNameDuplicates() должен вызывать метод removeItemFromMapByValue().
Map<String, String> mapCopy = new HashMap<>(map);
List<String> valueList = new ArrayList();
for (Map.Entry<String, String> pair : mapCopy.entrySet()) {
String key = pair.getKey();
String value = pair.getValue();
valueList.add(value);// Заполнить значениями из Мап
}
for (int i = 0; i < valueList.size(); i++) {
int count = 0;//создал счетчик для значения
String valueTemp = valueList.get(i);//значение проверяю на повторение
for (int j = 0; j < valueList.size(); j++) {
if ( valueList.get(j).equals(valueTemp) ) {
count++;
if ( count > 1 ) removeItemFromMapByValue(map, valueTemp);
}
}
}
// for ( String s: valueList ) System.out.println(s);
// System.out.println("================");
return map;
}
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().contains(value))
map.remove(pair.getKey());
}
}
public static void main(String[] args) {
// HashMap<String, String> map = createMap();//my
// Map<String, String> mapSort = removeTheFirstNameDuplicates( map );
// System.out.println("-----------------------");
// mapSort.forEach( (k, v) -> System.out.println( "Фамилия = " + k + ": имя = " + v ));
}
}