Главная

Java


hashCode.

в терминах Java, хеш-код – это эметод который принимает на вход Обьект и возвращает int. (это слепок сожержимого полей Обьекта)

Следует понимать, что множество возможных хеш-кодов ограничено примитивным типом int, (т.е. уникальных значений всего 4.294.967.296)
а множество объектов ограничено только нашей фантазией (т.е. обьектов может быть больше кол-ва уникальных хеш-кодов ).
Отсюда следует утверждение: “Множество объектов мощнее множества хеш-кодов”.
Из-за этого ограничения, вполне возможна ситуация, что хеш-коды разных объектов могут совпасть.


Соглашение между equals и hashCode в Java :

1) Если объекты равны по результатам выполнения метода equals, тогда их hashcode должны быть одинаковыми
2) Если объекты не равны по результатам выполнения метода equals, тогда их hashcode могут быть как одинаковыми, так и разными.
Однако для повышения производительности, лучше, чтобы разные объекты возвращали разные коды.

методы Object:

Полезные ссылки: