Не понимаю, в чем проблема! Подскажите, что делаю не так?
И если возможно, подкиньте еще задачек ИЗИ и Медиум уровня на мапы.
package com.javarush.task.task08.task0817;
import java.util.*;
/*
Нам повторы не нужны
*/
public class Solution {
public static Map<String, String> createMap() {
//напишите тут ваш код
Map <String, String> map = new HashMap<>();
map.put("Solid", "Snake");
map.put("Liquid", "Snake");
map.put("Kennedy", "Leon");
map.put("Redfield", "Chris");
map.put("Revolver", "Carl");
map.put("Vercetty", "Tommy");
map.put("Jhonson", "Carl");
map.put("Raiden", "Jack");
map.put("Colonel", "Campbell");
map.put("Big", "Boss");
return map;
}
public static void removeTheFirstNameDuplicates(Map<String, String> map) {
//напишите тут ваш код
ArrayList<String> list = new ArrayList<>();
Map<String, String> map1 = map;
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
Map.Entry<String, String> pair = iterator.next();
String key = pair.getKey();
String value = pair.getValue();
map1.remove(key);
if (map1.containsValue(value)) {
list.add(value);
}
}
for (int i = 0; i < list.size(); i++) {
removeItemFromMapByValue(map, list.get(i));
}
}
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());
}
}