Реализует ли интерфейс Map в Java интерфейс Collection?

«Реализует ли интерфейс Map в Java интерфейс Collection?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Нет, Map не реализует и не наследует интерфейс Collection. Это две параллельные иерархии в Java Collections Framework.

Основное отличие в концепции:

  • Collection<E> работает с отдельными элементами типа E.
  • Map<K, V> работает с парами «ключ-значение», где каждый элемент — это связь между ключом K и значением V.

Пример, демонстрирующий разницу:

// Collection: работа с единичными элементами
Collection<String> collection = new ArrayList<>();
collection.add("element");

// Map: работа с парами ключ-значение
Map<String, String> map = new HashMap<>();
map.put("key", "value");

Связь между Map и Collection: Хотя Map сам не является Collection, он предоставляет методы для получения представлений своих данных в виде коллекций:

  • keySet() — возвращает Set<K> ключей.
  • values() — возвращает Collection<V> значений.
  • entrySet() — возвращает Set<Map.Entry<K, V>> пар «ключ-значение».