Senior
Kako implementirati hashCode() za tip Long (64 bita) da vrati int (32 bita)?
sobes.tech АИ
Одговор од АИ
Для реализации метода hashCode() для типа Long (64 бита), возвращающего int (32 бита), обычно используют операцию XOR между старшими и младшими 32 битами значения. Это позволяет равномерно распределить биты и получить 32-битный хэш.
Пример реализации в Java:
@Override
public int hashCode() {
long value = this.longValue; // исходное 64-битное значение
return (int)(value ^ (value >>> 32));
}
Здесь value >>> 32 сдвигает число на 32 бита вправо без знака, выделяя старшую половину, а XOR объединяет её с младшей, давая итоговый 32-битный хэш.