При тестировании с помощью println в методе Dublicateв итоге выдает верный список, но задача не проходит по двум последним пунктам.. Что я не допоняла.. Заранее спасибо за помощь.
package com.javarush.task.task08.task0817;
import java.util.*;
/*
Нам повторы не нужны
*/
public class Solution {
public static HashMap<String, String> createMap() {
HashMap<String, String> fio = new HashMap<String, String>();
// ArrayList<String> fio1 = new ArrayList<>();
fio.put("Sokolovsik", "Ilja");
fio.put("Sokolovs", "Zenja");
fio.put("Sokolovas", "Liza");
fio.put("Sokolovan", "Dasha");
fio.put("r", "Katja");
fio.put("Belokurova", "Luda");
fio.put("Belokurov", "Vova");
fio.put("Malysheval", "Natasha");
fio.put("Malysheva", "Masha");
fio.put("Sokolova", "Masha");
System.out.println(fio);
return fio; //напишите тут ваш код
}
public static void removeTheFirstNameDuplicates() {
HashMap<String, String> copy2 = createMap();
ArrayList<String> names = new ArrayList<>();
for (String value : copy2.values()) {
names.add(value);
}
System.out.println((names));
for (int i = 0; i < names.size(); i++) {
int k = 0;
for (int j = 0; j < names.size(); j++) {
if (names.get(i).equals(names.get(j))) {
k++;
if (k > 1) {
removeItemFromMapByValue(copy2, names.get(i));
}
}
}
}
}
//напишите тут ваш код
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) {
}
}