Приведи примеры стандартных реализаций контейнеров

«Приведи примеры стандартных реализаций контейнеров» — вопрос из категории Алгоритмы и структуры данных, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

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