Наследует ли HashMap интерфейс Collection в Java?

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

Ответ

Нет. HashMap реализует интерфейс Map, который является отдельной иерархией от Collection.

Почему?

  • Collection (List, Set, Queue) работает с одиночными элементами.
  • Map (HashMap, TreeMap) работает с парами ключ-значение.

Хотя HashMap не является Collection, он предоставляет представления (views) в виде коллекций:

Map<String, Integer> map = new HashMap<>();
map.put("apple", 10);

// Методы, возвращающие коллекции:
Set<String> keys = map.keySet();         // Коллекция ключей (Set)
Collection<Integer> values = map.values(); // Коллекция значений (Collection)
Set<Map.Entry<String, Integer>> entries = map.entrySet(); // Коллекция пар (Set)

Best practice: Используйте Map для данных с ключами, а Collection — для списков или наборов одиночных элементов.