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 и ошибка повторяющегося ключа.