Помогите пожалуйста..
package com.javarush.task.task08.task0817;
import java.util.HashMap;
import java.util.Map;
import java.util.ArrayList;
import java.util.Collections;
/*
Нам повторы не нужны
*/
public class Solution {
public static Map<String, String> createMap() { //ложим ПАРЫ в МАПУ, и возвращаем ее методу.
Map<String, String> mapka = new HashMap<>(); // Map - это карточка в картотеке.
mapka.put("Орлов", "Аркадий");//напишите тут ваш код
mapka.put("Матюков", "Геннадий");
mapka.put("ЙЙПетросян", "Евгений");
mapka.put("Мартиросян", "Григорий");
mapka.put("Белкин", "Леонид");
mapka.put("ЙЙСтавропольский", "Геннадий");
mapka.put("Богачев", "Дмитрий");
mapka.put("Новицкий", "Аркадий");
mapka.put("Ставропольский", "Семен");
mapka.put("Петросян", "Леонид");
return mapka;
}
public static void removeTheFirstNameDuplicates(Map<String, String> map) { // вызывает метод-удалитель, при этом
Map<String, String> firstMap = createMap();
ArrayList<String> SurnameList = new ArrayList<>();
for (Map.Entry<String, String> pair : firstMap.entrySet()) {
String value = pair.getValue();
SurnameList.add(value);} // копирование value в ArrayList.
Collections.sort(SurnameList); //сортировка ArrayList в алфавитном порядке.
System.out.println(SurnameList);// проверка сортировки ArrayList.
for (int i = 1; i < SurnameList.size() - 1; i++) {
if (SurnameList.get(i).equals(SurnameList.get(i - 1))) {
removeItemFromMapByValue(map, SurnameList.get(i - 1)); //удаляется ОБЕ ПАРЫ (в задании нужно чтоб одна пара осталась).
}
}
}
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()); // удаляет пару ключ-значение по ключу. ////*удаляется по оригиналу*////
} // iterator.remove(); - используеться для Итератора через while.
}
}
public static void main(String[] args) {
// removeTheFirstNameDuplicates(createMap()); /*только вызывает ЭТОТ метод с аргументом нужной МАПЫ*/
Map <String, String> anyWord = createMap(); // - для проверки работоспособности.
removeTheFirstNameDuplicates(anyWord);
System.out.println(anyWord);
}
}