Тёмный

МФТИ Core Java 2020 Лекция 9 

Ivan Ponomarev
Подписаться 2,6 тыс.
Просмотров 7 тыс.
50% 1

Java Stream API

Опубликовано:

 

1 окт 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 7   
@vallaper
@vallaper 3 года назад
Добрый день. Большая вам благодарность за лекции. Можете прислать задания, которые даете своим студентам ?
@statuxia
@statuxia Год назад
0:10 - Steams API 3:20 - Преобразуем поток в поток 4:28 - Фильтруем 5:12 - Отображаем в консоль (терминальная операция) 5:56 - Все вместе в 1 строку 6:28 - Ничего не напоминает? 7:32 - Закономерный вопрос - А зачем это все надо? 7:53 - Пример (очень короткий и понятный код с минимумом возможных ошибок) 10:48 - Три категории методов Stream API 11:40 - Создание стрима 14:13 - Конкатенация стримов 14:42 - Порождение стримов (generate) 16:51 - Порождение стримов (iterate) на основе предыдущего 18:06 - Вопрос: Что будет в этом стриме? 20:20 - Spliterator: самый общий способ создания стрима 22:33 - Характеристики сплиттератора 23:13 - Промежуточные итоги 25:16 - Преобразование стримов в стримы: получение "головы" и "хвоста" 26:14 - filter 27:05 - map 27:43 - flatMap 32:10 - distinct 32:59 Вопрос: что произойдет при выполнении такого кода? 35:03 - sorted 35:38 - peek: отладочный метод 37:39 - Терминальные операции 41:44 - forEach() 42:16 - reduce (with identity) 44:05 - Parallel reduce 44:34 - Recude без identity 45:17 - Готовые reduce'ы 46:10 - collect: самый гибкий метод сборки результатов 47:28 - Интерфейс Collector 47:46 - Характеристики коллектора 48:36 - Промежуточные итоги 49:07 - Наиболее употребимые коллекторы 50:05 - Собирание в мапы 51:34 - Вариация на тему сборки в коллекции 52:29 - Строка с разделителями 53:55 - Группировки 55:32 - Downstream Collectors 58:00 - Но мы можем не только группировать в цепочке! 59:33 - Набор downstream collectors 1:00:44 - Downstream Collectors - продолжение 1:01:15 - Когда может быть нужен collectingAndThen? 1:03:41 - Параллельные стримы 1:04:06 - Optional: Контейнер, который содержит объект. Или не объект. 1:05:26 - Optiona: как стрим из 0 или 1 элемента 1:06:40 - Optional.map 1:07:24 - Optional.flatMap 1:08:28 - Optional.filter 1:08:51 - Правила использования Optional 1:10:32 - Когда стримы использовать не нужно 1:11:21 - Вопросы 1:23:22 - Выводы
@statuxia
@statuxia Год назад
Привет тому, кто читает этот комментарий. Это таймкоды, которые я ставил для себя, когда разбирал лекции. Я решил поделиться ими со всеми. Возможно они кому-то помогут. Спасибо за внимание.
@vgtstptlk
@vgtstptlk 3 года назад
Здравствуйте! А можно как-то получить домашние задания?
@УсьманкинИлья
@УсьманкинИлья 3 года назад
Спасибо за лекцию. Вам приходилось реализовывать собственный spliterator или collector? Если да, то поделиться опытом, пожалуйста, в каких случаях это может понадобиться?
@inponomarev
@inponomarev 3 года назад
Нет, мне не доводилось и Вам не рекомендую. Создание сплитераторов и коллекторов -- это удел тех, кто пишет библиотеки, а не программы (а мы пишем программы, а не библиотеки). Я рассказываю об этом на лекции для того, чтобы было понятно, как это устроено на низком уровне (что тут нет никакой "магии"). Того, что уже есть в стандартной библиотеке, хватает на 80-90% случаев. Для хитрых случаев работы со стримами есть прекрасная библиотка StreamEx (github.com/amaembo/streamex) .
@УсьманкинИлья
@УсьманкинИлья 3 года назад
@@inponomarev Спасибо!
Далее