Sobes.tech
Назад к вопросам
Junior — Middle
53

Какая из представленных структур данных не реализует интерфейс Collection?

Компании, где спрашивали
Magenta

Ответ от нейросети

sobes.tech AI

Что хотят услышать интервьюеры:

Обычно ожидают ответ: Map не реализует Collection, потому что хранит пары ключ-значение, а не набор элементов. Collection — это общий интерфейс для коллекций элементов, а Map стоит отдельно. Если нужны элементы как коллекция, у Map есть представления keySet(), values() и entrySet().

Определение:

Collection — это базовый интерфейс для структур данных, которые содержат набор элементов одного уровня: список, множество, очередь и т.д.
Map не наследуется от Collection, потому что его модель данных другая: он хранит соответствие между ключом и значением. Это отдельная иерархия в Java/Kotlin-экосистеме на Android.

Пример использования:

import java.util.*;

public class Example {
    public static void main(String[] args) {
        List<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");

        Map<String, Integer> map = new HashMap<>();
        map.put("A", 1);
        map.put("B", 2);

        Collection<String> collection = list; // OK
        // Collection<String> bad = map;       // Ошибка: Map не является Collection

        System.out.println(collection.size());
        System.out.println(map.size());
    }
}

Пояснение кода:

list можно присвоить переменной типа Collection, потому что List наследуется от Collection.
map нельзя присвоить к Collection, потому что HashMap реализует Map, а не Collection.
Если нужно работать с ключами или значениями Map как с коллекцией, используют map.keySet() или map.values().

Ключевые моменты:

  • Map — это не Collection.
  • Collection описывает набор элементов, Map — набор пар ключ -> значение.
  • List, Set, Queue реализуют Collection.
  • У Map есть отдельные представления: keySet(), values(), entrySet().
  • На собеседовании достаточно кратко сказать: «Не реализует Map».