Senior
31
Wie implementiert man hashCode() für den Typ Long (64 Bit), um einen int (32 Bit) zurückzugeben?
Unternehmen wurden gefragt
01.tech
Antwort von AI
sobes.tech KI
Для реализации метода 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-битный хэш.