Ответ
ArrayList – динамический массив, поддерживает быстрый доступ по индексу (O(1)), но вставка/удаление в середину – O(n).
List<String> list = new ArrayList<>();
list.add("A");
list.get(0); // "A"
LinkedList – двусвязный список. Вставка/удаление – O(1), но доступ по индексу – O(n).
List<String> linked = new LinkedList<>();
linked.add("B");
linked.getFirst(); // "B"
HashMap – хеш-таблица, доступ/вставка в среднем O(1). Не гарантирует порядок.
Map<String, Integer> map = new HashMap<>();
map.put("Key", 1);
map.get("Key"); // 1
TreeMap – красно-черное дерево. Элементы сортируются по ключу (O(log n) операции).
Map<String, Integer> tree = new TreeMap<>();
tree.put("B", 2);
tree.put("A", 1); // Автоматически сортируется: {"A":1, "B":2}
HashSet – аналог HashMap без дубликатов (внутри использует HashMap).
Set<String> set = new HashSet<>();
set.add("A");
set.contains("A"); // true