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

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

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

👉 JavaStart. Подписаться
👍10🔥411🫡1
👍3
Stream API в Java. Часть 7.

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

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

👉 JavaStart. Подписаться
👍811🔥1
🤣13🔥322😁1
Stream API в Java. Часть 8.

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

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

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

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

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

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

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

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

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

Это не все статистические методы Collectors. Другие возможности с подробным описанием смотрите в документации (https://docs.oracle.com/javase/8/docs/api/java/util/stream/Collectors.html). Помимо тех Collectors, которые определены в документации, можно использовать собственноручно созданные, кастомные варианты)

👉 JavaStart. Подписаться
👍6111🔥1👨‍💻1
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

👉 JavaStart. Подписаться
👍63🔥1👨‍💻1
😁13👍2🫡2🐳1
Stream API в Java. Часть 10.

Посмотрим несколько примеров работы сортирующих методов Stream API.

Используем ту же коллекцию строк, что и выше —
Stream.of("f10", "f15", "f2", "f4", "f4").

Единственное отличие — теперь в нем появился дубликат.

Первая задача — отсортировать строки в алфавитном порядке и добавить их в массив:

collection.stream().sorted().collect(Collectors.toList());
// [f2, f4, f4, f10, f15]

А вот чуть более интересное задание — нужно выполнить сортировку в обратном алфавитному порядке и удалить дубликаты. В массиве должны оказаться только уникальные значения:

collection.stream().sorted(String::compareTo).distinct().collect(Collectors.toList());

Здесь мы используем не только .sorted() для сортировки, но и метод .distinct() для удаления неуникальных значений при обработке коллекции.

Задачи по сортировке стримов в Java часто встречаются на собеседованиях не только на позицию Junior разработчиков, но даже и на позицию Middle!
Будьте внимательны)

👉 JavaStart. Подписаться
👍82🔥21