Возник вопрос как можно удалить дубликаты value из HashMap за раз? поиски в google "Remove duplicate values from HashMap in Java" выдает решения с введение дополнительного Set или вообще полную дичь :) но вот вопрос
map.values().stream().distinct()
выдает нам поток без дубликатов но как потом собрать в
.collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue))
никак не получается Я уже и фильтрами (
.filter(Map.Entry::getValue.distinct())
) и как только не пробовал :( Не выходит Может быть у кого-то есть готовое решение Мой вариант:
Set<String> uniques = new HashSet<>();
map.values().removeIf(map.values().stream().filter(e -> !uniques.add(e)).collect(Collectors.toSet())::contains);