Re[2]: equal
От: Rusher Россия  
Дата: 02.04.05 05:38
Оценка: +1
Здравствуйте, Cider, Вы писали:

C>Здравствуйте, Adopt, Вы писали:


A>>Почему когда нужно переопределить equals нужно также

A>>переделать и hashCode()

A>>и вообще зачем нужен этот hashCode() ведь hash таблица насколько

A>>понимаю это всего лишь контейнер, а о какой таблице идет речь здесь?

C>hashCode() необходим для работы хэш-таблицы. Исключительно для этого он и внесен в интерфейс всех объектов.

C>А переделывать оба метода нужно для сохранения основного свойства хэш-функции:
C>A == B --> hash(A) == hash(B)
C>Если это не сделать, то хэш-таблица может перестать корректно работать с данными объектами.

Не совсем верное условие:
a.equals(b) — true --> a.hashCode == b.hashCode — true
Иначе теряется смысл введения хешкода.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.