Курс на Stepik
Обложка курса «Java Stream API : тренажёр с нуля до уверенного уровня» на Stepik
500 ₽

Java Stream API : тренажёр с нуля до уверенного уровня 5.000

Открыть на
STEPIK.ORG

Stream API — одна из самых важных тем в Java, но многие разработчики используют его поверхностно или избегают из-за непонимания. В этом курсе вы разберётесь со Stream API от основ до продвинутых техник и научитесь писать чистый, лаконичный и профессиональный код. Через практические задачи и разборы вы поймёте, как правильно использовать stream, когда он упрощает код, а когда — наоборот. Курс построен как тренажёр: минимум воды, максимум практики и реальных сценариев.

Показатель Текущие показатели Рост
Значение 🏆 Рейтинг 3 дн 7 дн 30 дн
Количество учеников на курсе «Java Stream API : тренажёр с нуля до уверенного уровня»Учеников на курсе 28
Сертификаты, выданные на курсе «Java Stream API : тренажёр с нуля до уверенного уровня»Сертификатов выдано 0
Отзывы о курсе «Java Stream API : тренажёр с нуля до уверенного уровня»Отзывов получено 3
Рейтинг курса «Java Stream API : тренажёр с нуля до уверенного уровня»Рейтинг курса 5.000
Уроки в курсе «Java Stream API : тренажёр с нуля до уверенного уровня»Количество уроков 98
Тесты в курсе «Java Stream API : тренажёр с нуля до уверенного уровня»Количество квизов 658
Время прохождения курса «Java Stream API : тренажёр с нуля до уверенного уровня»Время прохождения курса
Стоимость курса «Java Stream API : тренажёр с нуля до уверенного уровня»Стоимость курса 500 ₽
Обновления курса «Java Stream API : тренажёр с нуля до уверенного уровня»Обновления курса
Дата публикации курса «Java Stream API : тренажёр с нуля до уверенного уровня»Дата публикации курса
Последнее обновление курса «Java Stream API : тренажёр с нуля до уверенного уровня»Последнее обновление
Сложность normal

Содержание курса

Разделы в курсе «Java Stream API : тренажёр с нуля до уверенного уровня» 15 разделов Уроки в курсе «Java Stream API : тренажёр с нуля до уверенного уровня» 98 уроков Тесты в курсе «Java Stream API : тренажёр с нуля до уверенного уровня» 658 тестов Время прохождения курса «Java Stream API : тренажёр с нуля до уверенного уровня» 27 ч. Последнее обновление курса «Java Stream API : тренажёр с нуля до уверенного уровня» обн. 3 мая 2026

1. Введение в Stream API

6 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 уроков
Закрытый
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 урока
Закрытый
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