Java 8 Stream collect to collections

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr

Данная статья написана командой Vertex Academy. Это одна из статей из нашего Учебника по Java 8. Надеемся, что данная статья Вам будет полезна. Приятного прочтения!


В этой статье мы рассмотрим сбор данных в коллекции с помощью Stream-ов в Java.

1. Введение

Stream API  - новый способ взаимодействия с данными, представляя их в виде конечного потока данных.

Один из методов Stream-ов, collect принимает лямбда-выражение известное как коллектор (Collector), которое собирает данные в необходимую структуру данных.

С ними мы сегодня и научимся работать.

2. Collect to List + filter

Отфильтруем список чисел по четности

До Java 8

Теперь мы можем использовать методы filter и collect

К счастью, свой коллектор нам писать не нужно т.к. в Java 8 добавили утилитный класс Collectors с необходимыми методами. Collect в сочетании с Collectors.toList возвращают List  (реализация - ArrayList)

3. Collect to Set + map

Преобразуем список имен в набор(Set) имен в верхнем регистре

До Java 8

Сейчас же мы можем воспользоваться методом map со ссылкой на метод, а так же утилитным классом Collectors

Collect в сочетании с Collectors.toSet возвращают Set (реализация -  HashSet)

4. Collect to Collection

Соберем список не пустых строк в Queue

До Java 8

Чтобы проделать то же самое с помощью Stream API необходимо воспользоваться другим методом класса Collections - toCollection

Метод toCollection принимает лямбда-выражение типа поставщик (Supplier), которое должно вернуть коллекцию, в которую мы хотим сохранить данные. В данном случае мы вернули LinkedList.

Пример так же можно улучшить с помощю ссылки на метод, изменив

На

Финальный вариант

Надеемся, что наша статья была Вам полезна. Также есть возможность записаться на наши курсы по Java в Киеве. Детальную информацию Вы можете найти у нас на сайте.

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr
Самоучители--узнать детальнее--