Задать вопрос
@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]


Может, кто знает решение поизящней?
  • Вопрос задан
  • 105 просмотров
Подписаться 1 Средний 2 комментария
Помогут разобраться в теме Все курсы
  • Нетология
    Java-разработчик с нуля
    12 месяцев
    Далее
  • Skillfactory
    Профессия Java-разработчик
    14 месяцев
    Далее
  • Яндекс Практикум
    Java-разработчик
    10 месяцев
    Далее
Решения вопроса 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());
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

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