187.88K
Category: softwaresoftware

StreamApi — это способ работы с коллекциями в функциональном стиле

1.

StreamApi — это способ работы с коллекциями в
функциональном стиле. Появился в Java 8.
Позволяет более просто и коротко работать со
структурами данных.
StreamAPI — это функциональный подход работы
с коллекциями, используя лямбда-выражения.
StreamAPI использует 2 вида операторов:
1) Промежуточные (intermediate)
2) Терминальные (terminal)
УРОК: № 8

2.

Промежуточных операторов в выражении может
быть бесконечное множество, в то время как
терминальный оператор всегда только один.
Обработка выражения не начнется пока не будет
вызван терминальный оператор. Экземпляр
стрима нельзя использовать более одного раза.
ПРОМЕЖУТОЧНЫЕ ОПЕРАТОРЫ

3.

Filter — фильтрует стрим по лямбда-выражению.
Sorted — сортирует стрим в естественном порядке, можно
использовать Comparator.
Limit — лимитирует количество обрабатываемых элементов в
стриме.
Skip — сигнализирует о пропуске нескольких элементов в стриме.
Distinct — убирает дубликаты из стрима.
Peek — выполняет действие над каждым элементом стрима.
Map — преобразует каждый элемент стрима по заданному лямбда
выражению.
FlatMap — работает как Map, только возвращает элемент
преобразованный в коллекцию.
ПРОМЕЖУТОЧНЫЕ ОПЕРАТОРЫ

4.

Промежуточные операторы всегда
возвращают Stream<>, в то время как
терминальные возвращают нужный
тип данных, либо не возвращают
ничего. Именно поэтому выполнение
цепочки стрима начнется только после
вызова терминального оператора.
ТЕРМИНАЛЬНЫЕ ОПЕРАТОРЫ

5.

FindFirst — вернет первый элемент в стриме подходящий под условие.
FindAny — вернет любой элемент стрима подходящий под условие.
Collect — собирает результат выполнения промежуточных операторов в
коллекцию.
Count — подсчитает количество элементов.
AnyMatch — true, если хотя бы один элемент подходит под условие.
NoneMatch — true, если ни один элемент не подходит под условие.
AllMatch — true, если все элементы удовлетворяют условию.
Min — вернет минимальный элемент удовлетворяющий условию.
Max — вернет максимальный элемент удовлетворяющий условию.
ForEach — применит функцию к каждому элементу получившегося
стрима.
ToArray — преобразует результат выполнения в массив.
Reduce — преобразует все элементы в один объект.
ТЕРМИНАЛЬНЫЕ ОПЕРАТОРЫ
English     Русский Rules