Получить доступ

Что верно про иерархию Collections Framework?

JuniorКоллекции
Коротко

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

Так подсказку видит пользователь sotto на живом собеседовании — за пару секунд, пока вы думаете вслух.

Подробно

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
  • ✓Iterable — корневой интерфейс, который делает возможным for-each
  • ✗Map наследует Collection, потому что хранит набор пар

Что спросят дальше

  • Что произойдёт с картой при удалении элемента из её keySet()?
  • Чем Queue отличается от Deque?

Разбор темы

Связанные вопросы

Закрытая бета

Подсказки на собеседовании — в реальном времени

sotto слышит вопрос интервьюера и показывает короткий ответ и план, как в блоке «Коротко». Оставьте контакт — пришлём доступ и промокод.

  • Промокод на 2 часа — сверх пробных 30 минут
  • Программа для Windows — скачать сразу, войти — через Яндекс ID или VK ID
  • Прямая связь с разработчиком: что улучшить — сделаем