Я большой поклонник Linq в C# (мы когда-нибудь поговорим о Linq). В Java есть что-то похожее на Linq, которое называется Stream. Поскольку большая часть моих текущих работ связана с Java, я думаю, что сначала я расскажу о Java Stream.

Что такое поток

Представленный в Java 8, это новый абстрактный уровень, который дает нам возможность обрабатывать данные декларативным способом. Эта функция была создана благодаря наличию лямбда-выражений, которые также были представлены в Java 8. Поток представляет собой последовательность объектов, к которым мы можем применять агрегатные операции. Некоторые из этих операций, включая filter, map, flatmap, limit, reduce, найти, сопоставить и т. д. Используя Stream, нам не нужно самостоятельно обрабатывать эти агрегатные операции, что сэкономит нам время.

Руки вверх

Объяснение без примера было бы бесполезным. Итак, допустим, у нас есть список сообщений с именем posts, которые содержат список статей с веб-сайта. Затем, допустим, мы хотим получить статьи, автором которых является «Хайдар». Обычно мы делали что-то вроде этого.

В этом случае все еще выглядит просто. Но что делать, если состояние становится сложным. Это сделало бы код загроможденным. Вот тут-то и приходит на помощь Стрим!

Используя Stream, мы можем использовать что-то вроде этого.

Гораздо проще, правда? Нам не нужно повторять вручную, и это более читабельно. Код в строке 3 на самом деле просто преобразует список Java List в объект Stream, мы можем выполнять агрегатные операции, если мы уже преобразовали его в объект Stream. Затем фильтр находится в строке 4, и в основном мы говорим ему выбирать только post, у которого есть автор с именем «Хайдар». После этого строка 5 в основном возвращается обратно объекту Stream в виде списка.

Заворачивать

На данный момент кажется, что это не оптимизация количества символов, которые нам нужно написать. Потому что пример операции очень прост в обоих случаях. Далее мы рассмотрим несколько примеров использования Java Stream, которые позволят лучше обрабатывать агрегатные операции. Спасибо за чтение.

использованная литература