Здравствуйте, 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
Иначе теряется смысл введения хешкода.