Понимаю, что уже близок к решению, но запас мыслей иссяк. Буду признателен за помощь!
Вывод: Brown=YYY
package com.javarush.task.task08.task0817;
import java.util.*;
/*
Нам повторы не нужны
*/
/**
Нам повторы не нужны
Создать словарь (Map<String, String>) занести в него десять записей по принципу "фамилия" - "имя".
Удалить людей, имеющих одинаковые имена.
Требования:
1. Программа не должна выводить текст на экран.
2. Программа не должна считывать значения с клавиатуры.
3. Метод createMap() должен создавать и возвращать словарь Map с типом элементов String, String
состоящих из 10 записей.
4. Метод removeTheFirstNameDuplicates() должен удалять из словаря всех людей, имеющие одинаковые имена.
5. Метод removeTheFirstNameDuplicates() должен вызывать метод removeItemFromMapByValue().
*/
public class Solution {
public static Map<String, String> createMap() {
//напишите тут ваш код
Map<String, String> map = new HashMap<>();
map.put("Araxis", "AAA");
map.put("Carter", "AAA");
map.put("Milano", "CCC");
map.put("Luben", "DDD");
map.put("Bighead", "QQQ");
map.put("Brown", "YYY");
map.put("Ilish", "BBB");
map.put("Gretzky", "HHH");
map.put("Putin", "BBB");
map.put("Guitarin", "ZZZ");
return map;
}
public static void removeTheFirstNameDuplicates(Map<String, String> map) {
//напишите тут ваш код
String[] names = new String[10];
int ind = 0;
for (Map.Entry<String, String> value : map.entrySet()) {
names[ind] = value.getValue(); // заполняю массив
ind++;
}
for (int i = 0; i < names.length; i++) {
for (int j = 1; j < names.length; j++) { // думаю ошибка где-то здесь...
if (names[i].equals(names[j]))
removeItemFromMapByValue(map, names[i]);
}
}
System.out.println(map); // не обращаем внимания, это для проверки удаления элементов
}
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.getKey());
}
}
}
public static void main(String[] args) {
removeTheFirstNameDuplicates(createMap());
}
}