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