В Java 8 Stream API доступны следующие операции выбора (selection operations):
- filter(Predicate<T> predicate) - фильтрует элементы потока по заданному условию, возвращая новый поток.
- distinct() - удаляет дубликаты элементов из потока, возвращая новый поток без повторений.
- limit(long maxSize) - ограничивает количество элементов в потоке не более указанного значения, возвращая новый поток с ограниченным количеством элементов.
- skip(long n) - пропускает первые N элементов в потоке и возвращает новый поток с оставшимися элементами.
- takeWhile(Predicate<T> predicate) - возвращает элементы потока, пока выполняется условие, заданное в предикате. До тех пор, пока предикат возвращает true для каждого элемента, элементы передаются по цепочке операций в виде нового потока данных.
- dropWhile(Predicate<T> predicate) - пропускает элементы потока до тех пор, пока выполняется условие, заданное в предикате. Как только предикат вернет false, оставшиеся элементы будут переданы по цепочке операций в виде нового потока данных.
- findFirst() - возвращает первый элемент из потока в виде Optional.
- findAny() - возвращает любой элемент из потока в виде Optional.
Операции выбора позволяют выбирать из потока только те элементы, которые удовлетворяют заданному условию, либо ограничивать количество элементов в потоке. Кроме того, при помощи операций findFirst() и findAny() можно получить первый или любой элемент из потока.
1606 вопрос-ответ по Java: https://github.com/DEBAGanov/interview_questions
Tелеграмм канал: https://t.me/DEBAGanov
Мое резюме: https://github.com/DEBAGanov