ExpertiDict

Java · Intermediário · Inglês · Técnico

hashCode

/ˈhæʃ koʊd/substantivo

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.

Veja também

Todos os termos de Java