hashCode()

Olá,

Alguém poderia me explicar pra que serve este bendito hashCode() ???

http://blog.caelum.com.br/2006/09/04/ensinando-que-e-o-hashcode/

Então o método hashCode juntamente como método equals servem para comparar dois objetos.

Será que alguém tem um exemplo bem simples e didático para me mostrar?

O exemplo mais prático ocorre em Collections.

Por exemplo, ao se adicionar um objeto em um Set (que não permite objetos duplicados) esses métodos são usados para verificar se o objeto a ser adicionado já não está no Set:

Set<String> meuSet = new HashSet<String>();
meuSet.add("a");
meuSet.add("b");
meuSet.add("b"); // esse objeto não é adicionado pois já existe no Set
// aqui o hashCode e o equals são usados para fazer essa verificação
meuSet.add("c");
System.out.println(meuSet);

tranquilo segue o exemplo:

vc tem uma objeto com 2 propiedades (nome,cpf), vc instanciou um objeto q esta na memoria e esse objeto tem as propiedades igual a nome=joao e cpf = 0000, ai vc faz uma consulta na sua base de dados e pega um objeto com nome = joao e cpf = 0000, ou seja vc tem 2 objetos na memoria que possuem propiedades iguais, se vc quiser interpretar no seu sistema q objetos com propiedades iguais sao a mesma coisa vc implementa o hashcode q ai nesse exemplo q eu dei vc só vai ter 1 objeto na memoria, entendeu ai ajudou ?

Interessante que quando as pessoas descrevem casos no uso do dia a dia parece ser muito mais fácil do que quando agente lê um livro técnico.