Gymterview
junior

Назовите основные интерфейсы JCF и их реализации

На вершине иерархии JCF располагаются два корневых интерфейса: Collection и Map. Они разделяют все коллекции на два вида: простые наборы элементов и наборы пар «ключ-значение».

Интерфейс Collection расширяют:

  • List — упорядоченная коллекция с допустимыми дубликатами. Реализации: ArrayList (динамический массив), LinkedList (двусвязный список), Vector (синхронизированный динамический массив), Stack (стек LIFO).
  • Set — неупорядоченная коллекция без дубликатов. Реализации: HashSet (на основе HashMap), LinkedHashSet (сохраняет порядок вставки), TreeSet (сортированное множество на красно-черном дереве).
  • Queue — коллекция с предопределенным порядком извлечения (обычно FIFO). Реализации: PriorityQueue (приоритетная очередь), ArrayDeque (двусторонняя очередь на массиве).

Интерфейс Map реализован классами:

  • HashMap — хэш-таблица, допускает null-ключ и null-значения.
  • LinkedHashMap — сохраняет порядок вставки или порядок обращения.
  • TreeMap — сортированная по ключам реализация на красно-черном дереве.
  • Hashtable — синхронизированная хэш-таблица, не допускает null (устаревший класс).
  • WeakHashMap — ключи хранятся как WeakReference, автоматически удаляются GC.

На собеседовании: интервьюер ожидает, что вы перечислите хотя бы основные интерфейсы (List, Set, Queue, Map) и по 2-3 реализации каждого. Покажите, что понимаете, почему Map стоит отдельно от Collection.