Все мозги сломал. Логически вроде всё правильно, возможно в коде что то не так?
Переменная ValueDouble - не пригодилась, её уже удалил )
package com.javarush.task.task08.task0817;
import java.util.HashMap;
import java.util.Map;
/*
Требования:
1. Программа не должна выводить текст на экран.
2. Программа не должна считывать значения с клавиатуры.
3. Метод createMap() должен создавать и возвращать словарь HashMap с типом элементов String, String состоящих из 10 записей.
4. Метод removeTheFirstNameDuplicates() должен удалять из словаря всех людей, имеющие одинаковые имена.
5. Метод removeTheFirstNameDuplicates() должен вызывать метод removeItemFromMapByValue().
*/
public class Solution {
public static HashMap<String, String> createMap() {
HashMap<String, String> map = new HashMap<String, String>();
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) {
for (Map.Entry<String, String> pair : map.entrySet()) {
String valueDuble;
int count = 0;
for (Map.Entry<String, String> pair1 : map.entrySet()) {
if (pair.getValue().equalsIgnoreCase(pair1.getValue())){ // Сравниваем значение со значением
count++; // Увеличиваем счетчик при совпадении значений
}
}
if (count>1) {
removeItemFromMapByValue(map, pair.getValue()); // Если значений больше 1ого, то передаем значение в метод, для удаления.
}
}
}
public static void removeItemFromMapByValue(Map<String, String> map, String value) {
HashMap<String, String> copy = new HashMap<String, String>(map);
for (Map.Entry<String, String> pairCopy : copy.entrySet()) {
if (pairCopy.getValue().equalsIgnoreCase(value)){
map.remove(pairCopy.getKey());
}
}
}
public static void main(String[] args) {
}
}
чаще пяти раз за день