Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Java [игнор отключен] [закрыт для гостей] / HashMap нужно ли переопределять хэшь код и equals для значений / 1 сообщений из 1, страница 1 из 1
22.02.2013, 14:44:47
    #38162337
ReaverDrop
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
HashMap нужно ли переопределять хэшь код и equals для значений
Допустим у меня есть

Map<MyКеуObj1, MyEntityObj2> map = new HashMap<MyКеуObj1, MyEntityObj2>();

Исходя из внутреннего устройства мапы - индекс бакета куда будет помещена структура типа (MyКеуObj1.hashCode() ,MyObj1, MyEntityObj2) будет определен исходя из MyКеуObj1.hashCode() через нормализацию, то же самое когда мы будем извлекать обьект по ключю. Далее в бакете у нас связный список из (MyКеуObj1.hashCode() ,MyКеуObj1, MyEntityObj2) и мы опять таки ищем элемент в списке у которого MyКеуObj1.equals(Искомый ключ).
Т.о хэш код вычисляеться только для ключа (MyКеуObj1), а для значения (MyEntityObj2) не вычисляеться, и не важно вставляем мы элемент или извлекаем, то же самое и для метода equals() - который срабатывает только для ключа, когда мы пробегаемся по линкед листу в бакете,чтобы найти нужный элемент.

Правильно ли это?

Заранее спасибо
...
Рейтинг: 0 / 0
Форумы / Java [игнор отключен] [закрыт для гостей] / HashMap нужно ли переопределять хэшь код и equals для значений / 1 сообщений из 1, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]