JavaStart
920 subscribers
896 photos
27 videos
604 links
Учи Java вместе с нами!
Наша платформа с курсом - https://javastart.tech
Ютуб с обучающими видео - https://www.youtube.com/@javastart_tech
Download Telegram
Stream API в Java. Часть 5.

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

Допустим, у нас есть коллекция состоящая из строк:

List<String> strings = Arrays.asList("Highload", "High", "Load", "Highload").

Применим к ней разные методы.

1) Посчитаем, сколько раз объект "High" встречается в коллекции:

strings.stream().filter("High"::equals).count()
// 1

equals – это метод, который есть у каждого объекта типа String.

2) А теперь посмотрим, какой элемент в коллекции находится на первом месте. Если мы получили пустую коллекцию, то пусть возвращается 0:

strings.stream().findFirst().orElse("0")
// Highload

3) Благодаря методам .filter(условие) и .findFirst() можно находить элементы, равные заданным в условии:

strings.stream().filter("Load"::equals).findFirst().get()
// Load

4) С помощью метода .skip(число long) можно искать элементы по порядку. Например, пропустить первый и вывести второй:

strings.stream().skip(1).findFirst().get()
// High

5) Можно также использовать методы .skip(число long) и .limit(число long), чтобы явно задавать, сколько элементов нужно пропустить, а сколько — вернуть. Полученные значения соберем в массив:

strings.stream().skip(1).limit(2).toArray()
// [High, Load]

Рассмотрим еще примеры в следующих постах.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍4🔥1
Please open Telegram to view this post
VIEW IN TELEGRAM
😁62👍2
This media is not supported in your browser
VIEW IN TELEGRAM
Обслуживание сервера в сложных условиях)

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6👍4🔥4
Какой будет результат работы следующей программы, используя Stream API Java?

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👨‍💻4🔥2
👆Объяснение к задаче выше:

Сначала создаётся список целых чисел из массива 1, 2, 3, 4, 5.

Затем этот список превращается в поток данных (Stream).

Далее выполняется фильтрация, оставляя только чётные числа (остаток при делении на 2 равен нулю).

Затем происходит преобразование каждого элемента потока в примитивный тип int, используя метод mapToInt().

Наконец, выполняется операция суммирования всех элементов потока с помощью метода sum().

В результате мы получаем сумму чётных чисел в списке, равную 6.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍6👨‍💻53
Please open Telegram to view this post
VIEW IN TELEGRAM
😁4👍21🔥1
Stream API в Java. Часть 6.

В Stream API Java пока мы не вызвали терминальный метод, ничего не происходит. Все потому, что конвейерные методы ленятся (они lazy). Это значит, что они обрабатывают данные и ждут команды, чтобы передать их терминальному методу.

Перечислим часто встречающиеся Конвейерные (или Промежуточные) операторы стримов.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍52👨‍💻2
Stream API в Java. Часть 7.

После того как мы поработали с нашим стримом (или потоком) каких-либо элементов (стрим списка любых кастомных моделей Java, например, класс Car или просто список строк или объектов Integer) нужно завершить эту работу с помощью терминального оператора.

Перечислим часто встречающиеся Терминальные операторы стримов в Java.

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43🔥1
Краткий гайд для прохождения интервью на любую позицию

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
😁6👍41
👍321👨‍💻1
Stream API в Java. Часть 8.

Подробнее изучите метод .collect(). Он позволяет гибко управлять преобразованием значений в разные типы: коллекции, массивы, map. Делается это благодаря статистическим методам Collectors.

Вот несколько интересных примеров:

toList — стрим приводится к списку;

toCollection — получаем коллекцию;

toSet — получаем множество;

toConcurrentMap, toMap — если нужен map;

summingInt, summingDouble, summingLong — если требуется получить сумму чисел;

averagingInt, averagingDouble, averagingLong — если хотите вернуть среднее значение;

groupingBy — если необходимо разбить коллекцию на части.

Это не все статистические методы Collectors. Другие возможности с подробным описанием смотрите в документации. Помимо тех Collectors, которые определены в документации, можно использовать собственноручно созданные, кастомные варианты)

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍62👨‍💻2
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍21
Stream API в Java. Часть 9.

Давайте поиграемся с методами .min() и .max().

Пусть у нас будет коллекция строк вида Arrays.asList("f10", "f15", "f2", "f4").
Нужно найти самый маленький элемент:

collection.stream().min(String::compareTo).get()
// f2

Метод compareTo() – это метод, который есть у каждого объекта типа String.

С максимальным значением тоже все очень просто:

collection.stream().max(String::compareTo).get()
// f15

👩‍💻 Наш практический курс Java–разработчика

JavaStart. Подписаться
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5👨‍💻32
Please open Telegram to view this post
VIEW IN TELEGRAM
😁9👍6🔥1