Sobes.tech
Senior

Comment implémenter hashCode() pour le type Long (64 bits) afin de retourner un int (32 bits) ?

sobes.tech IA

Réponse de l'IA

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