Ответ
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().