Что такое Java Collections Framework (JCF)?

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

Ответ

Java Collections Framework (JCF) — это унифицированная архитектура для представления и управления группами объектов (коллекциями). Он предоставляет интерфейсы, их реализации и алгоритмы.

Основные интерфейсы и реализации:

Интерфейс Описание Ключевые реализации
List<E> Упорядоченная коллекция (последовательность), допускает дубликаты. ArrayList, LinkedList, Vector
Set<E> Коллекция уникальных элементов. HashSet, TreeSet, LinkedHashSet
Queue<E> Коллекция, предназначенная для хранения элементов перед обработкой. LinkedList, PriorityQueue, ArrayDeque
Map<K, V> Объект, отображающий ключи на значения (не наследует Collection). HashMap, TreeMap, LinkedHashMap, ConcurrentHashMap

Примеры:

// List
List<String> names = new ArrayList<>();
names.add("Alice");
names.add("Bob");
System.out.println(names.get(0)); // Alice

// Set
Set<Integer> uniqueNumbers = new HashSet<>();
uniqueNumbers.add(1);
uniqueNumbers.add(1); // Не добавится
System.out.println(uniqueNumbers.size()); // 1

// Map
Map<String, Integer> scores = new HashMap<>();
scores.put("Alice", 95);
scores.put("Bob", 87);
System.out.println(scores.get("Alice")); // 95

Важные особенности:

  • Итераторы: Предоставляют безопасный способ обхода и удаления элементов.
  • Утилитный класс Collections: Содержит статические методы (sort(), reverse(), synchronizedList()).
  • Потокобезопасность: Большинство реализаций не потокобезопасны. Используйте ConcurrentHashMap, CopyOnWriteArrayList или методы Collections.synchronizedXXX().
  • Сравнение и порядок: TreeSet/TreeMap используют Comparable/Comparator. HashSet/HashMap используют hashCode() и equals().