Все же должно работать что не так?
package com.javarush.task.task08.task0817;
import java.util.*;
/*
Нам повторы не нужны
*/
public class Solution {
public static HashMap<String, String> createMap() {
HashMap<String, String> q = new HashMap<>();
q.put("блад", "магияфыв");
q.put("блад1", "магия12");
q.put("блад2", "магияфыв");
q.put("блад3", "магиячсм");
q.put("блад4", "магияправ");
q.put("блад5", "магия231");
q.put("блад6", "магия");
q.put("блад7", "магия");
q.put("блад8", "магия231");
q.put("блад9", "магия");
return q;
}
public static void removeTheFirstNameDuplicates(HashMap<String, String> map)
{
ArrayList<String> valuesList = new ArrayList<String>();
for (Map.Entry<String, String> pair : map.entrySet()) {
valuesList.add(pair.getValue());
}
for (int i = 0; i < valuesList.size(); i++) {
String nameToTest = valuesList.get(i);
int count = 0;
for (Map.Entry<String, String> pair : map.entrySet()) {
if (nameToTest.equals(pair.getValue())) {
count++;
}
}
if (count > 1) {
removeItemFromMapByValue(map, nameToTest);
}
}
}
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) {
HashMap<String, String> map = createMap();
removeTheFirstNameDuplicates(map);
}
}