Может ли храниться список в Bucket в HashMap

«Может ли храниться список в Bucket в HashMap» — вопрос из категории Java, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, может. В HashMap каждый бакет (bucket) хранит элементы в виде связного списка (или дерева, если элементов много). При коллизии хэш-кодов новые элементы добавляются в этот список.

Пример:

HashMap<String, Integer> map = new HashMap<>();
map.put("a", 1);  // Попадает в бакет 1
map.put("b", 2);  // Коллизия? Зависит от хэш-кода
map.put("a", 3);  // Заменяет старое значение

При hashCode() коллизии элементы хранятся в одном бакете как Node<K,V> (или TreeNode<K,V> при большом количестве). Java 8+ использует дерево для длинных списков (>8 элементов) для оптимизации поиска.