Получить доступ

Лямбды и Stream API

Основа с Junior

Функциональные интерфейсы, лямбды, Optional, ленивые стримы и коллекторы.

Что важно знать

  • Функциональный интерфейс — один абстрактный метод: Function, Predicate, Supplier, Consumer.
  • Стрим ленивый: промежуточные операции выполняются при терминальной.
  • Collectors: toMap, groupingBy, partitioningBy, joining.
  • Optional — для возвращаемых значений, не для полей и параметров.
  • Параллельные стримы используют общий ForkJoinPool — опасно в сервере.

Критерии освоения

Junior ≈ 8 ч

  • Пишет лямбды и ссылки на методы и использует стандартные функциональные интерфейсы
  • Обрабатывает коллекции стримами — filter, map, collect, groupingBy

Практика. Переписать 10 циклов обработки списка заказов на стримы с группировкой и агрегацией.

Middle ≈ 6 ч

  • Объясняет ленивость стримов и порядок выполнения операций
  • Использует Optional по назначению и не злоупотребляет им
  • Знает, когда параллельный стрим вредит

Практика. Написать собственный Collector и замерить последовательный и параллельный стрим на разных объёмах.

Вопросы с собеседований

Разборы темы

← Вся карта «Java»

Закрытая бета

Знать тему — половина дела

На живом собеседовании sotto слышит вопрос интервьюера и показывает короткий ответ и план. Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем