Встречается на собеседованиях • сегодня

Как понять в какой bucket положить данные

В Java для распределения данных по bucket'ам обычно используют хеш-функции. Например, в HashMap используется комбинация hashCode() и внутреннего алгоритма для определения индекса bucket'а:

java
int hash = key.hashCode();
int index = (n - 1) & (hash ^ (hash >>> 16)); // n - количество bucket'ов

Основные правила:

  1. Объекты с одинаковым хешем попадают в один bucket
  2. При коллизиях (одинаковый хеш) используется цепочка (LinkedList/TreeNode в Java 8+)
  3. Размер bucket'ов обычно равен степени двойки для оптимизации через битовые операции

Пример с собственным распределением:

java
int bucketIndex = Math.abs(key.hashCode()) % numberOfBuckets;
Sophi
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
Попробовать бесплатноArrow

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

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

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