— Привет, боец!
— Поздравляю тебя с повышением уровня квалификации. Нам нужны отчаянные парни.
— Уверен, у тебя есть еще много нерешенных задач. Самое время решить парочку из них!
8
Задача
Java Collections,
4 уровень,
15 лекция
Недоступна
AmigoSet (1)
Давай напишем какую-нибудь коллекцию. Пусть это будет твой собственный Set.
Пусть этот класс позволяет вставку NULL.
1. Создай класс AmigoSet. Пусть этот класс наследуется от AbstractSet.
Этот сэт должен поддерживать интерфейсы Serializable и Cloneable (как же без этого??).
Также очевидно, что он д
30
Задача
Java Collections,
4 уровень,
15 лекция
Недоступна
AmigoSet (2)
Изобретать механизм работы с хешем не будем, он уже реализован во многих коллекциях.
Мы возьмем коллекцию HashMap и воспользуемся ей.
1. Создай приватную константу Object PRESENT, которую инициализируй объектом Object, это будет наша заглушка.
2. Создай private transient поле HashMap<E,Object> map
14
Задача
Java Collections,
4 уровень,
15 лекция
Недоступна
AmigoSet (3)
Напиши свою реализацию следующих методов при условии, что нужно работать с ключами мапы:
* Iterator<E> iterator() - очевидно, что это итератор ключей. Получи множество ключей в map, верни его итератор
* int size() - это количество ключей в map, равно количеству элементов в map
* boolean isEmpty()
*
14
Задача
Java Collections,
4 уровень,
15 лекция
Недоступна
AmigoSet (4)
Твое собственное множество AmigoSet реализует интерфейс Cloneable. Однако, не клонируется правильно.
Напиши свою реализацию метода Object clone(), сделай поверхностное клонирование.
* Клонируй множество, клонируй map.
* В случае возникновения исключений выбрось InternalError.
* Убери лишнее пробрас
30
Задача
Java Collections,
4 уровень,
15 лекция
Недоступна
AmigoSet (5)
Твое собственное множество AmigoSet реализует интерфейс Serializable. Однако, не сериализуется правильно.
1. Реализуй свою логику сериализации и десериализации.
Вспоминай, какие именно приватные методы нужно добавить, чтоб сериализация пошла по твоему сценарию.
Для сериализации:
* сериализуй сет
*
8
Задача
Java Collections,
4 уровень,
15 лекция
Недоступна
AmigoSet (6)
Открой исходники HashSet (если у тебя нет исходников джавы, то скачай их и подключи), сравни со своим кодом.
Быстро это можно сделать сравнив через буфер. Скопируй код класса HashSet в буфер.
Зайди в класс AmigoSet, далее правая кнопка мыши -> Compare with Clipboard.
Ты только что реализовал сет, а
ПЕРЕЙДИТЕ В ПОЛНУЮ ВЕРСИЮ