Коллекторы
Коллекторы (Collectors) в Java Stream API предоставляют удобный способ собирать элементы потока в различные коллекции или другие структуры данных. Они позволяют выполнить конечную операцию на потоке данных, собрав результаты в желаемый контейнер или агрегируя данные в другом формате.
toList: Собирает элементы потока в список.
List<T> list = stream.collect(Collectors.toList());
toSet: Собирает элементы потока в множество.
Set<T> set = stream.collect(Collectors.toSet());
toMap: Собирает элементы потока в карту, используя ключи и значения, вычисленные из элементов потока.
Map<K, V> map = stream.collect(Collectors.toMap(keyMapper, valueMapper));
joining: Собирает элементы потока в одну строку, объединяя их с разделителем.
String result = stream.collect(Collectors.joining(delimiter));
groupingBy: Группирует элементы потока по заданному критерию.
Map<K, List<T>> groups = stream.collect(Collectors.groupingBy(classifier));
partitioningBy: Разделяет элементы потока на две группы на основе заданного предиката.
Map<Boolean, List<T>> partitions = stream.collect(Collectors.partitioningBy(predicate));
counting: Подсчитывает количество элементов в потоке.
long count = stream.collect(Collectors.counting());
summarizingInt/Long/Double: Предоставляет сводную статистику для числовых элементов потока (сумма, среднее значение, максимальное, минимальное значение и количество элементов).
IntSummaryStatistics stats = stream.collect(Collectors.summarizingInt());
reducing: Применяет функцию сведения (reduction) ко всем элементам потока.
Optional<T> result = stream.collect(Collectors.reducing(reductionFunction));
mapping: Применяет функцию к элементам потока и собирает результаты в коллекцию.
List<U> result = stream.collect(Collectors.mapping(mapper, downstreamCollector));
Last updated
Was this helpful?