❓ Какие есть методы в Stream API?
1️⃣ Промежуточные операции (Intermediate) - эти методы возвращают новый Stream, позволяя строить конвейеры:
- filter(Predicate<T> predicate) — фильтрация элементов.
- map(Function<T, R> mapper) — К каждому элементу применяется функция, возвращается одно значение.
- flatMap(Function<T, Stream<R>> mapper) — К каждому элементу применяется функция, возвращается поток для каждого значения. Затем все потоки объединяются в один общий поток.
- sorted(Comparator<T> comparator) — сортировка.
- distinct() — удаление дубликатов.
- limit(long maxSize) / skip(long n) — ограничение или пропуск элементов.
2️⃣ Терминальные операции (Terminal) - эти методы завершают поток и возвращают результат:
- forEach(Consumer<T> action) — выполнение действия для каждого элемента.
- collect(Collector<T, A, R>) — преобразование в коллекцию или другой объект.
- reduce(BinaryOperator<T> accumulator) — агрегация.
- count() — количество элементов.
- anyMatch, allMatch, noneMatch(Predicate<T>) — проверки условий.
- findFirst(), findAny() — поиск элементов.
3️⃣ Параллельные операции - для работы с большими данными:
- parallel() — перевод в параллельный поток.
- sequential() — возврат к последовательному выполнению.
4️⃣ Создание потоков:
- Stream.of(T... values) — из значений.
- Arrays.stream(T[] array) — из массива.
- Stream.generate(Supplier<T>) / Stream.iterate(T seed, UnaryOperator<T>) — создание бесконечных потоков.
Post #654
2.24K
- 👍 17
- 🔥 2
- ❤ 1
- 🎉 1