Встречается на 3% собеседований по Java

Что такое Bucket в HashMap

В Java HashMap использует массив Node<K,V>[] (или Entry<K,V>[] в старых версиях), где каждый элемент массива называется bucket.

  • Bucket – это "ячейка" в массиве, которая может содержать одну или несколько Node (при коллизиях).
  • При добавлении элемента HashMap вычисляет индекс bucket'а через hashCode() ключа и длину массива:
    java
    int index = (n - 1) & hash(key);  // n = длина массива
  • Если в bucket'е уже есть элементы (коллизия), новые элементы добавляются в виде связанного списка (до Java 8) или преобразуются в дерево (если размер > 8).

Пример:

java
Map<String, Integer> map = new HashMap<>();
map.put("a", 1);  // Добавляется в bucket с индексом, вычисленным из hash("a")
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

Следующий вопрос

Это единственный вопрос по вашему фильтру

как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы