Sobes.tech
Back to questions
Senior
7

Как реализовать hashCode() для типа Long (64 бита) чтобы вернуть int (32 бита)?

Companies where asked
01.tech

Answer from AI

sobes.tech 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-битный хэш.