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