Encodera

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

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

Справочник Java

Stream.gather()

Применяет к потоку собственную промежуточную операцию — например, разбиение на группы по N.

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

Синтаксис

default <R> Stream<R> gather(Gatherer<? super T, ?, R> gatherer)

Параметры

ПараметрТипОписание
gathererGatherer<? super T, ?, R>Промежуточная операция, обычно из класса `Gatherers`.

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

Stream<R>Поток результатов операции.

Примеры

Пачки фиксированного размера и скользящее окно:

void main() {
    List<Integer> nums = List.of(1, 2, 3, 4, 5);
    IO.println(nums.stream().gather(Gatherers.windowFixed(2)).toList());
    IO.println(nums.stream().gather(Gatherers.windowSliding(3)).toList());
}

Результат:

[[1, 2], [3, 4], [5]]
[[1, 2, 3], [2, 3, 4], [3, 4, 5]]

Примечания

Окончательно добавлен в Java 24. Готовые операции класса Gatherers: windowFixed(), windowSliding(), fold(), scan(), mapConcurrent(). В компактном файле класс доступен без импорта, как и весь модуль java.base; в обычном классе нужен import java.util.stream.Gatherers;.

См. также

  • Stream.map() — Преобразует каждый элемент потока.
  • Stream.collect() — Собирает элементы потока в коллекцию, строку или другую структуру.
  • Stream.limit() — Обрезает поток до первых N элементов.

В учебнике

  • Операции над потоками — Основные операции Stream API — filter, map, sorted, distinct, limit, skip, count, reduce, anyMatch, findFirst и числовые потоки.

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

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