У меня есть ряд объектов, у которых есть поле long
, значение которого однозначно идентифицирует конкретный объект во всей моей системе, подобно GUID. Я использовал Object.equals()
для использования этого идентификатора для сравнения, потому что я хочу, чтобы он работал с копиями объекта. Теперь я также хочу переопределить Object.hashCode()
, что в основном означает сопоставление моего long
с некоторым возвращаемым значением int
.
Если я правильно понял цель hashCode
, она в основном используется в хеш-таблицах, поэтому было бы желательно равномерное распределение. Это означает, что достаточно просто вернуть id % 2^32
. Это все, или я должен знать о чем-то еще?