Olá galera, estou com algumas dúvidas em relação ao hashCode.
Eu sobreescrevo ele na minha classe da seguinte maneira
public int hashCode(){
StringBuffer sb = new StringBuffer();
sb.append(this.codigo);
sb.append("-");
sb.append(this.numero);
return sb.hashCode();
}
faço isso para não ter que usar fórmulas e mais fórmulas, concateno tudo com um char que indica o fim de um atributo e o inicio de outro e peço pelo hashCode daquela StringBuffer;
Agora, as minhas dúvidas:
Está correto esse método? Posso usar assim que terei o resultado certo?
Ao meu ver… e acho que estou errado, se eu concatenar os mesmos valores eu deverei ter o mesmo hashCode, por exempo:
StringBuffer a = new StringBuffer();
a.append("teste");
System.out.println(a.hashCode());
StringBuffer b = new StringBuffer();
b.append("teste");
System.out.println(b.hashCode());
Deveria me retornar hashCodes iguais, certo?
PS: não retorna iguais.
Outra dúvida, qual a principal função do hashCode? Em que ocasiões eu utilizo ele?
Se não fui claro em algum ponto, por favor fale, que tentarei ser mais coezo