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