Назад к вопросам
Senior
4
Как реализовать hashCode() для типа Long (64 бита) чтобы вернуть int (32 бита)?
Компании, где спрашивали
01.tech
Ответ от нейросети
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-битный хэш.