Encodera

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.

Справочник Java

Collectors.toSet()

Сборщик, который складывает элементы потока в множество без повторов.

Доступно с: Java 8

Синтаксис

static <T> Collector<T, ?, Set<T>> toSet()

Возвращаемое значение

Collector<T, ?, Set<T>>Сборщик в множество.

Примеры

Уникальные домены почты:

void main() {
    Set<String> domains = Stream.of("a@x.com", "b@y.org", "c@x.com")
        .map(e -> e.substring(e.indexOf('@') + 1))
        .collect(Collectors.toSet());
    IO.println(domains.size());
    IO.println(domains.contains("y.org"));
}

Результат:

2
true

Примечания

Порядок элементов не гарантирован. Для отсортированного результата соберите в TreeSet: Collectors.toCollection(TreeSet::new). Неизменяемое множество даёт Collectors.toUnmodifiableSet().

См. также

  • Collectors.toList() — Сборщик, который складывает элементы потока в список.
  • Stream.distinct() — Убирает повторяющиеся элементы потока.
  • HashSet — Множество без повторов на основе хеш-таблицы; порядок не гарантирован.

В учебнике

  • Коллекторы — Метод collect и класс Collectors — toList, toSet, toMap, joining, counting, summingInt, averagingDouble и ошибка повторяющегося ключа.

Спасибо, что читаете!

Пожертвуйте сайту, мы стараемся ради вас.