Собственно вопрос:
1. Почему же не удаляет?
2. Я вообще не могу понять, что делает метод removeItemFromMapByValue и зачем его вызывать? Доп. проверка?
package com.javarush.task.task08.task0817;
import java.util.*;
/*
Нам повторы не нужны
*/
public class Solution {
public static HashMap<String, String> createMap() {
HashMap<String,String> map = new HashMap<>();
map.put("qwe","dasd");
map.put("qwee","dgdsa");
map.put("sdfs","dasd");
map.put("bxvb","bbxx");
map.put("qra","dasd");
map.put("cxvq",";klksdf");
map.put("werq","dasd");
map.put("vcbxz","pkoksdf");
map.put("hrth","dasd");
map.put("qr","l,,pdk");
return map;
}
public static void removeTheFirstNameDuplicates(Map<String, String> map) {
ArrayList<String> a = new ArrayList<String>();
for (Map.Entry<String,String> pair : map.entrySet()) {
a.add(pair.getValue());
}
for (int i = 1; i<=a.size(); i++) {
String s = a.get(i-1);
Iterator<Map.Entry<String,String>> iterator = map.entrySet().iterator();
while (iterator.hasNext()) {
String b = iterator.next().getValue();
if (b == s)
iterator.remove();
else
removeItemFromMapByValue(map, b);
}
}
}
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) {
}
}