Java 8 Stream modifiers

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr

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


В этой статье мы рассмотрим модификаторы Stream-ов в Java 8

1. Введение

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

Stream-ы могут иметь различные модификаторы состояния, мы рассмотрим следующие : distinct, sorted, parallel, sequential

2. Distinct stream

Если мы хотим получить Stream уникальных элеметов, мы можем воспользоваться методом distinct().

Использование метода distinct() предполагает что элементы Stream-a реализовывают метод equals()

Если же класс не реализовывает метод equals(), метод distinct() не будет иметь смысла

3. Sorted stream

Если мы хотим получить сортированный Stream, мы можем использовать метод sorted().

Stream имеет два метода sorted(), один без параметров (подразумевает что класс реализует Comparable) второй принимает Comparator.

Создадим класс Person

Теперь получим отсортированный Stream

Если элементы Stream-a не реализуют Comparable, мы получим ClassCastException при вызове sorted.

После реализации интерфейса все работает как нужно

Использование sorted и Comparator

4. Parallel stream

Stream API поддерживает параллельное исполнение задач. Чтобы сделать Stream параллельным, нужно лишь вызвать метод parallel() или parallelStream() у коллекции

Или же

На самом деле вывод будет разный каждый раз, Stream то параллельный, значит обрабатывать данные он будет в несколько потоков.

5. Sequential stream

Sequential stream это самый обычный (последовательный) Stream, метод sequential() был введен для того, чтобы из parallel можно было обратно получить sequential Stream.

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

Facebooktwittergoogle_plustumblrFacebooktwittergoogle_plustumblr

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