Senior
30
¿Cómo implementar hashCode() para el tipo Long (64 bits) para devolver un int (32 bits)?
Empresas donde se preguntó
01.tech
Respuesta de la IA
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-битный хэш.