Что такое Stream API?
Stream API — это часть Java API, которая была введена в Java 8 для облегчения работы с коллекциями данных и выполнения операций на них в функциональном стиле. Stream API предоставляет возможность создавать и манипулировать потоками данных.
Существует 3 возможных этапа потока:
1. Фильтрация;
2. Преобразование;
3. Упрощение или аккумуляция.
Что такое конвейерные и терминальные операции?
Конвейерные операции промежуточные. Они применяются к потоку данных и возвращают новый поток, который можно использовать для последующих операций. Эти операции выполняются лениво, то есть не вызывают фактического вычисления до тех пор, пока не будет вызвана терминальная операция.
Терминальные операции завершают обработку потока данных и возвращают конечный результат (или нет, если операция возвращает void). После выполнения терминальной операции поток данных больше не может быть использован.
Перечислите конвейерные (промежуточные) методы Stream API.
Перечислите терминальные методы Stream API.
Расскажите, какие шаблоны проектирования используются внутри Stream API? (Builder, Strategy, Decorator, Factory Method, Pipeline).
Объясните, где они используются в Stream API.
Декоратор используется для добавления новых функциональностей объекту, не изменяя его структуру.
Фабричный метод используется для создания объектов с использованием подклассов вместо создания экземпляров напрямую.
Стратегия позволяет выбирать алгоритм выполнения во время выполнения программы.
Шаблон Строитель используется для пошагового создания сложных объектов, позволяя пользователю выбирать и комбинировать компоненты.
Конвейер - это архитектурный шаблон, в котором данные обрабатываются последовательно несколькими компонентами, называемыми этапами конвейера.
В Stream API, конвейер представляет собой последовательность конвейерных операций, где каждая операция обрабатывает поток данных и передает результат следующей операции в цепочке.