Stream.gather()
Применяет к потоку собственную промежуточную операцию — например, разбиение на группы по N.
Доступно с: Java 24
Синтаксис
default <R> Stream<R> gather(Gatherer<? super T, ?, R> gatherer)Параметры
| Параметр | Тип | Описание |
|---|---|---|
| gatherer | Gatherer<? 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 и числовые потоки.