Почему хэш-код объекта изменяется в Java? - PullRequest
2 голосов
/ 15 августа 2011

Почему хеш-код объекта изменяется в Java?Это меняется вообще?Как это связано с Hashtable?У каждого объекта должен быть свой уникальный хэш-код. Итак, является ли причина для этого перефразировкой?

Заранее спасибо.

1 Ответ

2 голосов
/ 15 августа 2011

Реализация хэш-кода по умолчанию эквивалентна идентификации объекта.Однако некоторые объекты переопределяют хэш-код, который может дать вам хэш-код, который изменяется в зависимости от состояния объекта.

Обычно вы делаете это, если переопределяете определение equals (на самом деле, если вы переопределяете equals, вы должны переопределитьхэш-код).Это потому, что вы хотите, чтобы объекты, равные по определению, которое вы создали, возвращали тот же хеш-код.В противном случае может возникнуть ситуация, когда карта содержит несколько «равных» объектов, поскольку они возвращают разные хеш-коды.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...