Sobes.tech
Senior

Hoe implementeer je hashCode() voor het type Long (64-bit) om een int (32-bit) terug te geven?

sobes.tech AI

Antwoord van AI

Для реализации метода 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-битный хэш.