Quais são os princípios e recomendações principais ao implementar o método hashCode para suas classes?
sobes.tech IA
Resposta da IA
Princípios e recomendações principais ao implementar o método hashCode em Java:
-
Consistência com equals: Se dois objetos são iguais de acordo com o método
equals(), então seushashCode()devem retornar o mesmo valor. -
Estabilidade: O valor de
hashCodede um objeto não deve mudar durante a vida do objeto, se os campos envolvidos no cálculo não mudarem. -
Boa distribuição: O método deve tentar distribuir uniformemente os códigos hash para reduzir colisões em tabelas hash.
-
Uso de campos significativos: No cálculo de
hashCode, use os campos que participam na comparaçãoequals.
Exemplo de implementação:
@Override
public int hashCode() {
int result = 17;
result = 31 * result + (field1 != null ? field1.hashCode() : 0);
result = 31 * result + field2;
// adicione outros campos conforme necessário
return result;
}
Aqui, o número 31 é escolhido como um número primo para reduzir colisões, e o valor inicial 17 é um número não nulo arbitrário.