Как удалить из hashmap все элементы с одинаковым значением?
Он итерируется. 
Методы .entrySet() .forEach((a, b) -> ...)
Создаёшь новый пустой HashMap newMap - это будет результат.
Создаёшь пустой Set newSet - через него  будем  фильтровать  значения.
Из заданного HashMap oldMap получаем все ключи из oldMap (key) как keySet - это набор всех ключей твоего oldMap.
Проходишь по oldMap с помощью keySet, извлекая поочерёдно значения (val) из oldMap.
  Каждое значение val проверяешь на наличие его в newSet.
  Если оно там присутствует, ты нашёл ключ к дублированному в oldMap  значению val и не сохраняешь его.
  Если val в newSet отсутствует, помещаешь его туда и копируешь пару key<->val из oldMap в newMap;

После конца алгоритма в newMap имеешь набор только уникальных значений.