Блок 5 | Конвейерные операции Stream Flashcards
Что делает метод filter()?
Метод filter() является одним из методов в Java Stream API и используется для фильтрации элементов в потоке данных на основе заданного условия. Он принимает предикат (функцию, возвращающую булево значение) и возвращает новый поток, содержащий только те элементы исходного потока, для которых предикат возвращает true.
Что делает метод map()?
Метод map() в Java Stream API используется для преобразования каждого элемента в потоке данных с использованием предоставленной функции. Он принимает функцию (или lambda-выражение), которая преобразует каждый элемент потока, и возвращает новый поток, содержащий преобразованные элементы.
Что делает метод flatMap()?
Метод flatMap() в Java Stream API используется для преобразования элементов в потоке и объединения результатов в один поток. Он принимает функцию (или lambda-выражение), которая возвращает поток элементов, и “разглаживает” (flattens) этот поток, объединяя его элементы в один общий поток.
Различие между map() и flatMap() заключается в том, что map() возвращает поток, состоящий из элементов, полученных преобразованием каждого элемента исходного потока, в то время как flatMap() возвращает поток, объединяя элементы из каждого потока, полученного преобразованием элементов исходного потока.
Что делают методы forEach и peek?
forEach используется для выполнения заданной операции для каждого элемента потока. Он принимает в качестве аргумента объект функционального интерфейса Consumer, представляющего операцию, которая применяется к каждому элементу потока.
peek также выполняет заданную операцию для каждого элемента потока, но он возвращает новый поток, сохраняя исходный. Это может быть полезным для отладки или для выполнения действий, не изменяющих состояние элементов потока.
Что делают методы skip и limit?
skip используется для пропуска указанного количества элементов в начале потока. Он принимает в качестве аргумента число элементов, которые нужно пропустить.
limit используется для ограничения потока указанным количеством элементов. Он принимает в качестве аргумента число элементов, которые нужно оставить.
Что делают методы mapToInt(), flatMapToInt(), mapToObj()?
Методы mapToInt(), flatMapToInt() и mapToObj() являются разновидностями методов map() и flatMap() в Java Stream API и используются для преобразования элементов потока. Различия заключаются в типе результата, который они возвращают.
mapToInt() используется для преобразования элементов потока в примитивные целочисленные значения (int). Это может быть полезно, когда вы хотите работать с числовыми данными в потоке, и вы хотите избежать накладных расходов на упаковку/распаковку объектов.
flatMapToInt() используется для преобразования каждого элемента потока в поток примитивных целочисленных значений, а затем объединения результатов в один поток. Это может быть полезно, например, когда вы хотите разделить каждый элемент на отдельные числа.
mapToObj() используется для преобразования элементов потока в объекты другого типа. Это полезно, когда вы хотите преобразовать примитивные значения в объекты или изменить тип объектов в потоке.