Junior — Middle
99
Jak wybrać odpowiedni kubeł w HashMap do wstawienia elementu?
Firmy, w których zadano pytania
Ifellow
Odpowiedź od AI
sobes.tech AI
В HashMap для выбора подходящего бакета (корзины) используется хеш-функция ключа и размер массива бакетов.
Алгоритм выбора бакета:
- Вычисляется хеш-код ключа с помощью метода
hashCode(). - Хеш-код дополнительно обрабатывается (например, в Java 8 используется метод
hash()для лучшего распределения). - Индекс бакета вычисляется как
index = (n - 1) & hash, гдеn— размер массива бакетов (обычно степень двойки).
Это позволяет эффективно распределять ключи по бакетам и быстро находить нужный элемент.
Пример:
int hash = key.hashCode();
int index = (table.length - 1) & hash;
// table — массив бакетов
Таким образом, битовая операция AND с размером массива минус один обеспечивает индекс в пределах массива.