Тема  3. Лямбда-выражения и потоки

Содержание

  1. Расширения интерфейсов
  2. Лямбда-выражения
    1. Функциональные интерфейсы
    2. Лямбда-выражения
    3. Ссылки на методы
  3. Поддержка лямбда-выражений в основных классах
    1. Типы-обертки
    2. Класс Objects
    3. Стандартные функциональные интерфейсы
  4. Поддержка лямбда-выражений в Collections Framework
    1. Необязательные значения
    2. Компараторы
    3. Новые методы коллекций и отображений
  5. Потоки значений
    1. Применение
      1. Типы потоков
      2. Создание и преобразование потоков
      3. Комбинаторы
    2. Стандартные коллекторы
    3. Реализация потоков
      1. Разбиваемые итераторы
      2. Обобщенные свертки
      3. Параллельное исполнение

Слайды

HTML

Примеры

zip

Домашнее задание 3. Студенты

  1. Разработайте класс StudentDB, осуществляющий поиск по базе данных студентов.
    • Класс StudentDB должен реализовывать интерфейс StudentQuery (простой вариант) или GroupQuery (сложный вариант).
    • Каждый метод должен состоять из ровно одного оператора. При этом длинные операторы надо разбивать на несколько строк.
  2. При выполнении задания следует обратить внимание на:
    • применение лямбда-выражений и потоков;
    • избавление от повторяющегося кода.

Домашнее задание 4. Сплитераторы и коллекторы

  1. Разработайте класс Lambda, реализующий сплитераторы для деревьев и дополнительные коллекторы.
    • Простой вариант (интерфейс EasyLambda) — реализуйте:
      • сплитераторы для двоичных деревьев, двоичных деревьев с известным размером, k-ичных деревьев;
      • коллекторы первого, последнего, среднего элементов;
      • коллекторы общего префикса и суффикса строк.
    • Сложный вариант (интерфейс HardLambda) — дополнительно реализуйте:
      • сплитераторы всех видов деревьев над списками элементов;
      • коллектор n-ого элемента;
      • коллекторы первых и последних n элементов.
  2. При выполнении задания следует обратить внимание на:
    • характеристиски создаваемых сплитераторов;
    • избавление от повторяющегося кода.