Содержание курса
1. Введение в Stream API
6 уроков
33
26
53м
0
Закрытый
1.1
Что такое Stream
↗
9
5
6м 20с
0
Закрытый
1.2
Чем stream отличается от коллекции
↗
6
5
16м 43с
0
Закрытый
1.3
Как работает обработка данных через stream
↗
6
4
16м 21с
0
Закрытый
1.4
Промежуточные и терминальные операции
↗
4
4
6м 29с
0
Закрытый
1.5
Ленивые вычисления (Lazy Evaluation)
↗
4
4
8м 30с
0
Закрытый
1.6
Когда stream удобен, а когда лучше использовать цикл
↗
4
4
1м 58с
0
2. Создание стримов
6 уроков
23
20
52м
0
Закрытый
2.1
Создание stream из коллекции и массива
↗
5
5
6м 19с
0
Закрытый
2.2
Stream.of() и Stream.empty()
↗
5
4
6м 46с
0
Закрытый
2.3
Числовые стримы: IntStream, LongStream, DoubleStream
↗
4
4
13м 26с
0
Закрытый
2.4
Диапазоны чисел: range() и rangeClosed()
↗
4
3
8м 15с
0
Закрытый
2.5
Бесконечные стримы: iterate() и generate()
↗
3
2
8м 21с
0
Закрытый
2.6
Создание stream из файла
↗
2
2
10м 31с
0
3. Базовые промежуточные операции
8 уроков
16
11
116м
0
Закрытый
3.1
filter()
↗
2
2
16м 6с
0
Закрытый
3.2
map()
↗
2
2
13м 50с
0
Закрытый
3.3
mapToInt(), mapToLong(), mapToDouble()
↗
2
2
19м 49с
0
Закрытый
3.4
sorted()
↗
2
1
16м 22с
0
Закрытый
3.5
distinct()
↗
2
1
17м 43с
0
Закрытый
3.6
limit()
↗
2
1
9м 10с
0
Закрытый
3.7
skip()
↗
2
1
8м 26с
0
Закрытый
3.8
peek()
↗
2
1
18м 46с
0
4. Базовые терминальные операции
8 уроков
17
8
77м
0
Закрытый
4.1
forEach()
↗
3
1
9м 43с
0
Закрытый
4.2
toList()
↗
2
1
13м 41с
0
Закрытый
4.3
collect()
↗
2
1
9м 22с
0
Закрытый
4.4
count()
↗
2
1
9м 57с
0
Закрытый
4.5
findFirst() и findAny()
↗
2
1
8м 18с
0
Закрытый
4.6
anyMatch(), allMatch(), noneMatch()
↗
2
1
10м 33с
0
Закрытый
4.7
min() и max()
↗
2
1
8м 31с
0
Закрытый
4.8
reduce()
↗
2
1
12м 8с
0
5. Числовые стримы и агрегирующие операции
7 уроков
14
7
64м
0
Закрытый
5.1
Особенности IntStream, LongStream, DoubleStream
↗
2
1
16м 47с
0
Закрытый
5.2
sum()
↗
2
1
9м 47с
0
Закрытый
5.3
average()
↗
2
1
9м 37с
0
Закрытый
5.4
min(), max()
↗
2
1
7м 11с
0
Закрытый
5.5
Преобразование в примитивные стримы
↗
2
1
9м 58с
0
Закрытый
5.6
boxed()
↗
2
1
8м 30с
0
Закрытый
5.7
Подсчет сумм, средних значений и других числовых характеристик
↗
2
1
7м 1с
0
6. Работа со строками и коллекциями через stream
6 уроков
12
6
51м
0
Закрытый
6.1
Фильтрация строк
↗
2
1
8м 42с
0
Закрытый
6.2
Преобразование строк
↗
2
1
6м 53с
0
Закрытый
6.3
Сортировка строк
↗
2
1
6м 29с
0
Закрытый
6.4
Удаление дубликатов
↗
2
1
8м 4с
0
Закрытый
6.5
Обработка списков чисел
↗
2
1
13м 56с
0
Закрытый
6.6
Комбинирование нескольких операций в одной цепочке
↗
2
1
10м 57с
0
7. Вложенные структуры и flatMap()
6 уроков
12
6
83м
0
Закрытый
7.1
Зачем нужен flatMap()
↗
2
1
16м 49с
0
Закрытый
7.2
Разница между map() и flatMap()
↗
2
1
20м 57с
0
Закрытый
7.3
Работа со списком списков
↗
2
1
10м 30с
0
Закрытый
7.4
Разбиение строк на слова
↗
2
1
10м 34с
0
Закрытый
7.5
Объединение вложенных коллекций
↗
2
1
9м 43с
0
Закрытый
7.6
Практические задачи на flatMap()
↗
2
1
19м 47с
0
8. Collectors
10 уроков
21
10
136м
0
Закрытый
8.1
Что такое Collectors
↗
2
1
11м 16с
0
Закрытый
8.2
Collectors.toList()
↗
2
1
15м 55с
0
Закрытый
8.3
Collectors.toSet()
↗
2
1
9м 17с
0
Закрытый
8.4
Collectors.joining()
↗
2
1
17м 36с
0
Закрытый
8.5
Collectors.counting()
↗
2
1
8м 28с
0
Закрытый
8.6
Collectors.summingInt()
↗
2
1
9м 10с
0
Закрытый
8.7
Collectors.averagingInt()
↗
2
1
10м 1с
0
Закрытый
8.8
Collectors.groupingBy()
↗
2
1
21м 46с
0
Закрытый
8.9
Collectors.partitioningBy()
↗
2
1
18м 44с
0
Закрытый
8.10
Collectors.mapping()
↗
3
1
18м 37с
0
9. Работа со stream объектов
7 уроков
15
7
104м
0
Закрытый
9.1
Обработка списков объектов
↗
3
1
18м 19с
0
Закрытый
9.2
Фильтрация объектов по полям
↗
2
1
15м 18с
0
Закрытый
9.3
Преобразование объектов
↗
2
1
17м 10с
0
Закрытый
9.4
Сортировка объектов
↗
2
1
16м 55с
0
Закрытый
9.5
Поиск максимального и минимального объекта
↗
2
1
15м 37с
0
Закрытый
9.6
Группировка объектов
↗
2
1
12м 18с
0
Закрытый
9.7
Агрегация данных по объектам
↗
2
1
11м 44с
0
10. Optional и результаты стримов
6 уроков
12
6
77м
0
Закрытый
10.1
Почему некоторые операции возвращают Optional
↗
2
1
15м 55с
0
Закрытый
10.2
orElse()
↗
2
1
12м 49с
0
Закрытый
10.3
orElseGet()
↗
2
1
14м 0с
0
Закрытый
10.4
orElseThrow()
↗
2
1
11м 23с
0
Закрытый
10.5
ifPresent()
↗
2
1
13м 43с
0
Закрытый
10.6
Как безопасно работать с findFirst(), max(), min(), average()
↗
2
1
12м 28с
0
11. Частые ошибки и подводные камни
6 уроков
12
6
79м
0
Закрытый
11.1
Повторное использование stream
↗
2
1
13м 39с
0
Закрытый
11.2
Изменение внешнего состояния внутри stream
↗
2
1
13м 17с
0
Закрытый
11.3
Неправильное использование peek()
↗
2
1
11м 24с
0
Закрытый
11.4
Слишком сложные цепочки операций
↗
2
1
14м 48с
0
Закрытый
11.5
Ошибки при работе с Optional
↗
2
1
16м 15с
0
Закрытый
11.6
Когда stream ухудшает читаемость
↗
2
1
12м 49с
0
12. Параллельные стримы
5 уроков
10
5
62м
0
Закрытый
12.1
Что такое parallelStream()
↗
2
1
14м 49с
0
Закрытый
12.2
Чем параллельный stream отличается от обычного
↗
2
1
16м 22с
0
Закрытый
12.3
Когда имеет смысл использовать parallelStream()
↗
2
1
12м 33с
0
Закрытый
12.4
Ограничения и риски
↗
2
1
12м 46с
0
Закрытый
12.5
Почему не стоит использовать parallel streams без необходимости
↗
2
1
9м 58с
0
13. Streams vs циклы
5 уроков
10
5
29м
0
Закрытый
13.1
Когда stream делает код лучше
↗
2
1
6м 30с
0
Закрытый
13.2
Когда цикл проще и понятнее
↗
2
1
6м 47с
0
Закрытый
13.3
Сравнение решений одной задачи двумя способами
↗
2
1
7м 31с
0
Закрытый
13.4
Рефакторинг циклов в stream
↗
2
1
6м 3с
0
Закрытый
13.5
Анализ читаемости и поддержки кода
↗
2
1
5м 54с
0
14. Практика: задачи по возрастанию сложности
8 уроков
16
16
136м
0
Закрытый
14.1
Простые задачи на filter, map, count
↗
2
2
15м 31с
0
Закрытый
14.2
Задачи на сортировку, уникальность, ограничения
↗
2
2
13м 3с
0
Закрытый
14.3
Задачи на поиск и проверки
↗
2
2
17м 15с
0
Закрытый
14.4
Задачи на reduce
↗
2
2
17м 16с
0
Закрытый
14.5
Задачи на flatMap
↗
2
2
19м 0с
0
Закрытый
14.6
Задачи на Collectors
↗
2
2
19м 50с
0
Закрытый
14.7
Задачи на объекты
↗
2
2
18м 44с
0
Закрытый
14.8
Комбинированные задачи
↗
2
2
18м 3с
0
15. Итоговый блок: Мини-проект на обработку данных
4 урока
8
8
51м
0
Закрытый
15.1
Задание на проект
↗
2
2
-
0
Закрытый
15.2
Мини-проект на обработку данных (Обзор задания)
↗
2
2
45м 56с
0
Закрытый
15.3
Мини-проект на обработку данных (Домашнее задание)
↗
2
2
1м 50с
0
Закрытый
15.4
Мини-проект на обработку данных (Разбор домашнего задания)
↗
2
2
5м 54с
0