2017-02-09 7 views
0

Может кто-нибудь просмотреть и сообщить мне, если мое понимание верное.Понимание Внутренняя реализация hashmap

При размещении значения генерируется хэш-код для ключа, на основе хэш-кода мы находим ковш и сохраняем пару значений ключа. Теперь, получая значение, мы передаем ключ, его хэш-код генерируется, а затем используя этот хэш-код, мы НАЙТИ ВЕДРО, где хранится значение ключа. И значение возвращается.

Правильно ли это, что если ключ 2 diff имеет одинаковый хэш-код, то при получении значения для ключа (hashcode, сгенерированного для ключа при получении) hashcode используется только для перехода в ведро.? И тогда метод equals используется для извлечения значения?

+2

Да, это звучит правильно. –

+1

См. Также: [Как Java HashMap обрабатывает разные объекты с одним и тем же хэш-кодом?] (Http://stackoverflow.com/questions/6493605/how-does-a-java-hashmap-handle-different-objects-with -The-же-хэш-код/​​6493946 # 6493946) – Jesper

ответ

0

Вы понимаете это правильно. Ковши используются для повышения производительности, так как вычисление хэш-кода и поиск ковша быстро, при попытке сравнения с использованием equals против каждого объекта в хэшмапе неэффективны. Эффективность работы заметно при работе с большими наборами.

Смежные вопросы