Sobes.tech
Senior

Πώς υλοποιείτε το hashCode() για τον τύπο Long (64 bit) ώστε να επιστρέφει ένα int (32 bit);

sobes.tech AI

Απάντηση από 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-битный хэш.