@devpy14

Как сконвертировать Collection(map.values()) в обычный Set?

Есть Map:
{English=[Antony], Chemistry=[John], Music=[Antony]}
При использовании map.values() возвращает [[Antony], [John], [Antony]], нужно перевести это все дело в Set, избавившись от дубликатов. Я пришел только к след. варианту:
Set<String> uniqueStudents = new HashSet<>();
        for (List<String> listName: map.values()) {
            uniqueStudents.add(listName.get(0));
        }
        System.out.println(uniqueStudents); // [John, Antony]


Может, кто знает решение поизящней?
  • Вопрос задан
  • 103 просмотра
Решения вопроса 1
BorLaze
@BorLaze
Java developer
Или вопрос странный, или одно из двух... чем простейшее решение-то не устраивает?
Set<String> uniqueStudents = new HashSet<>(map.values());


ЗЫ: не заметил, что значениями map являются массивы строк, а не строки. Тогда, действительно, надо так:
Set<String> set = map.values().stream()
                               .map(a -> a[0])
                               .collect(Collectors.toSet());
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы