Кто то может дать нормалтный список действий,что тут вообще нужно делать,а что нет ? Нужен тут арай лист,или лучше создать еще один мап , перенести туда совпадающие значения , и потом сравнивать оба мапа , и если совпадает-удалять из каждого ?
И метод который в самом низу
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());
}
}
}
этот метод ,сколько мое скромное суждение смеет заявлять , на вход принимает "Ключ значение ", "значение",
сравнивает значения,ив случае совпадения,удаляет по ключу. Не проще ли чем создавать бог знает что,просто в него передавать?Или я что то уж совсем не так понимаю? Начинаю чувствовать себя аутистомpackage com.javarush.task.task08.task0817;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Iterator;
/*
Нам повторы не нужны
*/
public class Solution {
public static Map<String, String> createMap() {
Map <String, String>map = new HashMap<>();
map.put("qw", "we");
map.put("we", "er");
map.put("er", "er");
map.put("ty", "hr");
map.put("sd", "er");
map.put("gh", "er");
map.put("kl", "tr");
map.put("rt", "er");
map.put("ry", "yr");
map.put("ui", "er");
return map;
}
public static void removeTheFirstNameDuplicates(Map<String, String> map) {
//ArrayList<String> list = new ArrayList<>();
Iterator<Map.Entry<String, String>> iterator = map.entrySet().iterator();
while(iterator.hasNext()){
Map.Entry<String, String> pair = iterator.next();
String value = pair.getValue();
removeItemFromMapByValue(removeTheFirstNameDuplicates(value));
}
}
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) {
}
}