Ответ
Коллекции в Java организованы в иерархии List, Set и Map (последний не является частью коллекций в строгом смысле, но относится к Collections Framework).
| Интерфейс | Описание | Ключевые реализации | Особенности |
|---|---|---|---|
List<E> |
Упорядоченная коллекция (последовательность), допускает дубликаты. | ArrayList, LinkedList, Vector (устаревший) |
ArrayList — быстрый доступ по индексу, медленные вставка/удаление в середине. LinkedList — быстрые вставка/удаление, медленный доступ по индексу. |
Set<E> |
Коллекция уникальных элементов. | HashSet, LinkedHashSet, TreeSet |
HashSet — не гарантирует порядок, O(1) для основных операций. LinkedHashSet — сохраняет порядок вставки. TreeSet — хранит элементы отсортированными (по Comparable/Comparator). |
Map<K,V> |
Отображение ключ-значение, ключи уникальны. | HashMap, LinkedHashMap, TreeMap, ConcurrentHashMap |
HashMap — не гарантирует порядок. LinkedHashMap — порядок вставки/доступа. TreeMap — сортировка по ключам. ConcurrentHashMap — потокобезопасная. |
Примеры использования:
// List
List<String> names = new ArrayList<>();
names.add("Alice");
names.get(0); // Быстрый доступ
// Set
Set<Integer> uniqueIds = new HashSet<>();
uniqueIds.add(1);
uniqueIds.add(1); // Второе добавление игнорируется
// Map
Map<String, Integer> scores = new HashMap<>();
scores.put("Alice", 95);
scores.get("Alice"); // 95
Выбор реализации зависит от требований к порядку, уникальности, скорости операций и потокобезопасности.