package com.javarush.task.task08.task0817;

import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;

/*
Нам повторы не нужны
*/

public class Solution {
    public static Map<String, String> createMap() {
        Map<String, String > map = new HashMap<>();
        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) {
        //напишите тут ваш код
        Map<String,String> map2 = map;
        Iterator <Map.Entry<String, String>> iterator = map2.entrySet().iterator();
        while (iterator.hasNext()){
            Map.Entry<String, String> pair = iterator.next();
            String name = pair.getValue();
            Iterator <Map.Entry<String, String>> iterator2 = map2.entrySet().iterator();
            Integer count = 0;
            while (iterator2.hasNext()){
                Map.Entry<String,String> pair2 = iterator2.next();
                String name2 = pair2.getValue();
                if (name.equals(name2))
                    count++;
            }
            if (count>0){
                removeItemFromMapByValue(map, name);
                count = 0;
            }
        }
    }

    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) {
        Map<String, String> map = createMap();
        removeTheFirstNameDuplicates(map);
        for (Map.Entry<String, String> pair: map.entrySet()
             ) {
            System.out.println(pair.getKey() + " " + pair.getValue());
        }
    }
}