Что не так?Программа работает корректно, но валидатор не пропускает.
package com.javarush.task.task08.task0817;
import java.util.HashMap;
import java.util.*;
/*
Нам повторы не нужны
*/
public class Solution {
public static HashMap<String, String> createMap() {
HashMap<String,String> nameSecName = new HashMap<>();
nameSecName.put("Й","Дмитрий");
nameSecName.put("Ф","Василий");
nameSecName.put("Ы","Сергей");
nameSecName.put("В","Дмитрий");
nameSecName.put("А","Петя");
nameSecName.put("С","Василий");
nameSecName.put("Г","Владимир");
nameSecName.put("П","Алексей");
nameSecName.put("РТ","Владимир");
nameSecName.put("М","Дмитрий");
return nameSecName;
}
public static void removeTheFirstNameDuplicates(Map<String, String> map) {
HashSet<String> temp = new HashSet<>();
String sTemp;
for (Map.Entry<String, String> pairMain : map.entrySet()) {
int n = 0;
sTemp = pairMain.getValue();
for (Map.Entry<String, String> pair : map.entrySet()) {
if (pair.getValue().contains(sTemp))n++;
if (n>1 && pair.getValue().contains(sTemp)) temp.add(pair.getValue());
}
}
for (String text : temp) removeItemFromMapByValue(map,text);
}
public static void removeItemFromMapByValue(Map<String, String> map, String value) {
HashMap<String, String> copy = new HashMap<String, String>(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());
}
}