Здравствуйте, Adopt, Вы писали:
A>Почему когда нужно переопределить equals нужно также A>переделать и hashCode()
A>и вообще зачем нужен этот hashCode() ведь hash таблица насколько A>понимаю это всего лишь контейнер, а о какой таблице идет речь здесь?
hashCode() необходим для работы хэш-таблицы. Исключительно для этого он и внесен в интерфейс всех объектов.
А переделывать оба метода нужно для сохранения основного свойства хэш-функции:
A == B --> hash(A) == hash(B)
Если это не сделать, то хэш-таблица может перестать корректно работать с данными объектами.