JavaRush
Акция
Университет
Java FullStack
Python FullStack
new
Web FullStack
new
Обучение
Курсы
Задачи
Опросы
Игры
Помощь
График пинков
Стажировка
Сообщество
Пользователи
Форум
Чат
Статьи
Истории успеха
Активности
Отзывы
Подписки
Светлая тема

Лекции

  • Отзывы
  • О нас
  • CS50
Начать
Начать обучение
Начать обучение
  • Мое обучение
  • Курсы
  • Университет
  • Карта квестов
  • Лекции
  • Методы flatMap и mapMulti

    JAVA 25 SELF
    32 уровень,0 лекция
    В этой лекции разберём, чем отличается преобразование данных через map, «сплющивающее» преобразование через flatMap и более эффективный аналог из Java 16+ — mapMulti. На практических примерах наглядно увидим, как распаковывать вложенные коллекции к виду Stream<String> вместо Stream<Stream<String>>, как работать с Optional через stream(), а также когда выбирать mapMulti ради производительности без создания промежуточных потоков.
    Открыта
  • Методы join, concat: объединение потоков

    JAVA 25 SELF
    32 уровень,1 лекция
    В этой лекции разбираем способы объединения данных в Stream API: статический метод Stream.concat для двух потоков, комбинацию Stream.of + flatMap для произвольного числа потоков, а также сборщик Collectors.joining для склейки элементов в одну строку. Поговорим о ленивости, одноразовости стримов, сохранении порядка и типичных ошибках (повторное использование потока, бесконечные стримы, joining для не-строк) — с наглядными примерами.
    Открыта
  • Операции union, intersection, difference

    JAVA 25 SELF
    32 уровень,2 лекция
    В этой лекции разбираем типовые операции над множествами в Java: объединение ( union), пересечение ( intersection) и разность ( difference) на базе интерфейса Set и Stream API. Показаны практические примеры с Stream.concat, Stream.of + flatMap, альтернативы через retainAll/ removeAll, а также важные нюансы про equals/ hashCode, эффективность и типичные ошибки.
    Открыта
  • Зипование (zip), генерация потоков (iterate, generate)

    JAVA 25 SELF
    32 уровень,3 лекция
    В лекции разберём, что такое zip и почему его нет в стандартном Stream API (до Java 22), научимся «сшивать» коллекции через индексы с помощью IntStream.range, а также создавать потоки «на лету» с помощью Stream.iterate и Stream.generate. Примеры, визуализации и типичные ошибки помогут уверенно применять генерацию и зипование в задачах.
    Открыта
  • Разбор типичных ошибок при работе с потоками

    JAVA 25 SELF
    32 уровень,4 лекция
    Подробный гид по частым ошибкам при работе с Stream API в Java: одноразовая природа потока и повторные терминальные операции ( collect(), forEach(), count()), изменение коллекции во время обхода, забытый limit() у бесконечных потоков ( iterate, generate), обработка null и работа с Optional через flatMap(Optional::stream), сохранение порядка с forEachOrdered(), эффективные операции множеств с Set, корректное закрытие ресурсов ( Files.lines + try-with-resources), осторожность с parallelStream() и принцип «пока нет терминального оператора — ничего не исполняется». Все проблемы сопровождаются понятными примерами и исправлениями.
    Открыта
Обучение
  • Курсы программирования
  • Регистрация
  • Курс Java
  • Помощь по задачам
  • Цены
Сообщество
  • Пользователи
  • Статьи
  • Форум
  • Чат
  • Истории успеха
  • Активности
Компания
  • О нас
  • Контакты
  • Отзывы
  • FAQ
  • Поддержка
JavaRushJavaRush — это интерактивный онлайн-курс по изучению Java-программирования c нуля. Он содержит 1200 практических задач с проверкой решения в один клик, необходимый минимум теории по основам Java и мотивирующие фишки, которые помогут пройти курс до конца: игры, опросы, интересные проекты и статьи об эффективном обучении и карьере Java‑девелопера.
Подписывайтесь
Язык интерфейса
Русский
English Українська
"Программистами не рождаются" © 2026 JavaRush
MastercardVisa
"Программистами не рождаются" © 2026 JavaRush