Интерфейс Stream в Java предоставляет ряд методов, которые позволяют выполнять операции над элементами потока данных. Некоторые из этих методов:
- filter(Predicate<T> predicate): фильтрует элементы потока на основе заданного условия, передаваемого в качестве аргумента в виде объекта типа Predicate.
- map(Function<T, R> mapper): преобразует каждый элемент потока с помощью функции, передаваемой в качестве аргумента в виде объекта типа Function<T, R>.
- flatMap(Function<T, Stream<R>> mapper): принимает функцию, которая преобразует каждый элемент потока в другой поток, и возвращает объединенный поток из всех полученных потоков.
- distinct(): удаляет повторяющиеся элементы из потока.
- sorted(): сортирует элементы потока по умолчанию в естественном порядке или с помощью компаратора.
- limit(long maxSize): ограничивает количество элементов в потоке до указанного числа.
- skip(long n): пропускает n элементов в потоке.
- forEach(Consumer<T> action): выполняет действие для каждого элемента потока.
- toArray(): возвращает массив, содержащий элементы потока.
- reduce(BinaryOperator<T> accumulator): сворачивает элементы потока в один объект с помощью заданной функции, передаваемой в качестве аргумента в виде объекта типа BinaryOperator.
- collect(Collector<T, A, R> collector): выполняет сбор элементов потока с помощью заданного коллектора, передаваемого в качестве аргумента в виде объекта типа Collector<T, A, R>.
Кроме этих методов, интерфейс Stream также содержит ряд дополнительных методов для работы с числами, строками, датами и временем, а также для преобразования данных в параллельный поток или обратно.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov