Содержание
- Расширения интерфейсов
- Лямбда-выражения
- Функциональные интерфейсы
- Лямбда-выражения
- Ссылки на методы
- Поддержка лямбда-выражений в основных классах
- Типы-обертки
- Класс Objects
- Стандартные функциональные интерфейсы
- Поддержка лямбда-выражений в Collections Framework
- Необязательные значения
- Компараторы
- Новые методы коллекций и отображений
- Потоки значений
- Применение
- Типы потоков
- Создание и преобразование потоков
- Комбинаторы
- Стандартные коллекторы
- Реализация потоков
- Разбиваемые итераторы
- Обобщенные свертки
- Параллельное исполнение
Домашнее задание 3. Студенты
-
Разработайте класс
StudentDB
,
осуществляющий поиск по базе данных студентов.
-
Класс
StudentDB
должен реализовывать
интерфейс StudentQuery
(простой вариант)
или GroupQuery
(сложный вариант).
-
Каждый метод должен состоять из ровно одного оператора.
При этом длинные операторы надо разбивать на несколько строк.
-
При выполнении задания следует обратить внимание на:
-
применение лямбда-выражений и потоков;
-
избавление от повторяющегося кода.
Домашнее задание 4. Сплитераторы и коллекторы
-
Разработайте класс
Lambda
,
реализующий сплитераторы для деревьев и дополнительные коллекторы.
- Простой вариант (интерфейс
EasyLambda
) —
реализуйте:
-
сплитераторы
для двоичных деревьев,
двоичных деревьев с известным размером,
k-ичных деревьев;
-
коллекторы первого, последнего, среднего элементов;
-
коллекторы общего префикса и суффикса строк.
- Сложный вариант (интерфейс
HardLambda
) —
дополнительно реализуйте:
-
сплитераторы всех видов деревьев над списками элементов;
-
коллектор n-ого элемента;
-
коллекторы первых и последних n элементов.
-
При выполнении задания следует обратить внимание на:
-
характеристиски создаваемых сплитераторов;
-
избавление от повторяющегося кода.