Java · Intermediário · Inglês · Técnico
hashCode
Método de Object que devolve um inteiro usado por coleções de dispersão. Objetos iguais segundo equals precisam devolver o mesmo hashCode.
Onde usar
Aparece no bug de um objeto sumir de um HashSet depois de ser alterado, ou quando se sobrescreve equals sem sobrescrever hashCode.
Em código
class Ponto {
int x, y;
@Override public int hashCode() {
return Objects.hash(x, y);
}
// equals precisa seguir o mesmo contrato
}Exemplos
If you override equals, override hashCode too.
Se você sobrescrever equals, sobrescreva hashCode também.
The key disappeared from the HashSet after we mutated it.
A chave sumiu do HashSet depois que a alteramos.
Cuidado
Mesmo hashCode não implica igualdade: colisões são normais; só a direção contrária é obrigatória.