Какова базовая иерархия коллекций (Collections Framework) в Java?

«Какова базовая иерархия коллекций (Collections Framework) в Java?» — вопрос из категории Java Core, который задают на 10% собеседований Java Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Иерархия коллекций начинается с интерфейса Collection<E>, который является корневым для большинства типов коллекций. Он объявляет основные операции: добавление (add), удаление (remove), проверка наличия (contains), размер (size) и другие.

Основные интерфейсы, расширяющие Collection:

  • List<E> — упорядоченная коллекция, допускает дубликаты. Доступ по индексу.
  • Set<E> — коллекция уникальных элементов. Порядок не гарантирован (кроме LinkedHashSet, TreeSet).
  • Queue<E> — коллекция, предназначенная для обработки элементов в определённом порядке (FIFO, LIFO, приоритет).

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

List<String> programmingLanguages = new ArrayList<>();
programmingLanguages.add("Java");
programmingLanguages.add("Kotlin");
programmingLanguages.add("Java"); // Дубликат разрешён
System.out.println(programmingLanguages); // Вывод: [Java, Kotlin, Java]

Отдельная иерархия — Map<K,V>: Map не наследует Collection, это отдельный интерфейс для работы с парами ключ-значение. Конкретные реализации (ArrayList, HashSet, HashMap и т.д.) предоставляют специфическую логику хранения данных.