Что верно про иерархию Collections Framework?
Iterable → Collection → List, Set, Queue; Map — отдельная ветвь, не Collection: она хранит пары, а не элементы.
- List — порядок и индексы, Set — уникальность, Queue и Deque — порядок обработки
- Map связана с коллекциями через keySet, values, entrySet
- SequencedCollection и SequencedMap (Java 21) — общий порядок: getFirst, getLast, reversed
А ещё Iterable делает возможным for-each
Подробно
Map не является Collection, потому что оперирует парами ключ-значение, а не отдельными элементами: у Collection сигнатура add(E), которая для карты бессмысленна. Связь всё же есть — через представления keySet(), values() и entrySet(), каждое из которых уже является коллекцией и отражает изменения исходной карты. Iterable с единственным методом iterator() лежит выше Collection и обеспечивает работу for-each — реализовать его может и ваш собственный класс.
Что хотят услышать
- Ветви иерархии и почему Map отдельно.
- Назначение List, Set, Queue.
Частые ошибки
- Считать Map частью Collection.
- Забывать, что keySet и entrySet — это представления, а не копии.
Проверьте себя
Несколько верных вариантов. Подумайте, потом откройте ответ.
Показать варианты и ответ
- ✓Map не наследует Collection — это отдельная ветвь иерархии
- ✓List, Set и Queue наследуют Collection
- ✗Map наследует Collection, потому что хранит набор пар ключ–значение
- ✓Iterable — корневой интерфейс, который делает возможным for-each
Что спросят дальше
- Что произойдёт с картой при удалении элемента из её keySet()?
- Чем Queue отличается от Deque?
Разбор темы
- Collections Framework: карта и выбор структуры
Иерархия интерфейсов, сложности операций основных структур, неизменяемые коллекции и принцип выбора по паттерну доступа.
Связанные вопросы
Разбор собеседования с sotto
После собеседования sotto разбирает разговор: оценка, каждый вопрос — хорошо, частично или слабо, чего не хватило в ответе и над чем поработать к следующему разу. Первые 30 минут бесплатно.