Junior — Middle
Quais passos devem ser tomados para implementar a sobrescrição do método hashCode na classe?
sobes.tech IA
Resposta da IA
Para a implementação correta do método hashCode numa classe, deve-se:
- Selecionar os campos que influenciam a igualdade dos objetos (normalmente os mesmos usados em
equals). - Utilizar um algoritmo estável e eficiente para calcular o hash, considerando os campos selecionados.
- Cumprir o contrato entre
equalsehashCode: se dois objetos forem iguais segundoequals, os seushashCodedevem ser iguais.
Exemplo de sobrescrita de hashCode:
@Override
public int hashCode() {
int result = 17;
result = 31 * result + (field1 != null ? field1.hashCode() : 0);
result = 31 * result + (field2 != null ? field2.hashCode() : 0);
return result;
}
Onde field1 e field2 são os campos que participam na comparação de objetos. Pode-se usar Objects.hash(field1, field2) para simplificar.