O metodo hashCode() da linguagem de programação Java.


  O hashCode() é a função de hash padrão do Java. Porém, ela é, de certa forma bastante exotica se comparado ao padrão que geralmente as funções hash seguem, padrões tais como:

  • ao invés do padrão que é gerar uma cadeia de caracteres, o hashCode() gera um número inteiro;
  • ao invés do padrão de ter uma unicidade forte, por conta do hashCode() usar um número inteiro, sua unicidade não é muito forte (o que gera colisões de hash);
  • ao invés do padrão de ter tamanho fixo, o hashCode() não se preocupa em ter tamanho fixo;
  • ao invés do mesmo dado gerar sempre o mesmo hash, o hashCode() (apesar de ser casos raros) nem sempre gera os mesmos hashes para as mesmas entradas dependendo da execução da aplicação.

  Mas essas coisas não nescessariamente são um problema, afinal existem diferentes tipos de hash, e cada um é para um uso especifico, no caso de hashCode() é ter uma velocidade rápida para gerar hash sem nescessariamente precisar ter alta unicidade, ou sem nescessariamente ter tamanho fixo. Ou então o caso de não manter consistencia entre execuções (que depende de fatores diversos, como OS, JVM e GC), não é nescessariamente um problemas pois o hashCode() é feito para se trabalhar nas estruturas de dados do Java durante a execução da aplicação, e não para persistir esses hashes.