Программа работает. Но не проходит валидацию. В чем тут дело?
package com.javarush.task.task08.task0817;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
import static java.util.Collections.sort;
/*
Нам повторы не нужны
*/
public class Solution {
public static HashMap<String, String> createMap() {
HashMap<String, String> map = new HashMap<String, String>();
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) {
ArrayList<String> list = new ArrayList<String>();
for (Map.Entry<String, String> pair : map.entrySet()) list.add(pair.getValue()); //значение
Collections.sort(list);
//for (String s : list) {
// System.out.println(s);
// }
int x=1;
for (int i=0; i<list.size()-1; ) {
if (list.get(i).equals(list.get(i+1))) {
list.remove(i+1);
x++;
}
else {
if (x==1) {
list.remove(i);
}
else {i++; x=1;}
}
}
//for (String s : list) {
// System.out.println(s);
//}
for (String s : list) {
removeItemFromMapByValue( map, s);
}
//for (Map.Entry<String, String> pair : map.entrySet())
// {
// String key = pair.getKey(); //ключ
// String value = pair.getValue(); //значение
// System.out.println(key + ":" + value);
//}//напишите тут ваш код
}
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());
}
}