Встречается на собеседованиях • сегодня
Как понять в какой bucket положить данные
В Java для распределения данных по bucket'ам обычно используют хеш-функции. Например, в HashMap используется комбинация hashCode() и внутреннего алгоритма для определения индекса bucket'а:
java
int hash = key.hashCode();
int index = (n - 1) & (hash ^ (hash >>> 16)); // n - количество bucket'овОсновные правила:
- Объекты с одинаковым хешем попадают в один bucket
- При коллизиях (одинаковый хеш) используется цепочка (LinkedList/TreeNode в Java 8+)
- Размер bucket'ов обычно равен степени двойки для оптимизации через битовые операции
Пример с собственным распределением:
java
int bucketIndex = Math.abs(key.hashCode()) % numberOfBuckets;
Софи собрала все вопросы. Тренируйся и получай
офферы быстрее!
офферы быстрее!
Попробовать бесплатно
Следующий вопрос
Это единственный вопрос по вашему фильтру
как отвечать на вопрос
пример собеседования
фреймворки на собеседовании
типичные вопросы junior
интервью вопросы и ответы