Fala Galera!
Tenho uma certa deficiência com os hashCode()'s… Bom… vamos ao que eu sei…
hashCode é um código de identificação de um objeto, muito utilizados em tabelas hash para aumentar a performance em buscas…
Sempre que equals for sobrescrito devemos sobrescrever o hashCode para mandar o contrato de Object…
2 ou mais objetos podem ter o mesmo hashCode, isso não irá gerar erro, porém é uma péssima prática de programação, se isso acontecer não tem sentido armarzenar estes objetos em tabelas hash…
Alguém pode dar uma bela explanada sobre o assunto a nível de SCJP?!
Valeu!
Atn.
Dennys Fredericci
http://www.dennys.eti.br
tb gostaria de receber esssa explicação!hehehe 
Tem um exemplo no livro da Kathy q explica bem, nao sei se vc ta lendo ele. Por exemplo, se vc tem um conjunto de baldes, alguem te da um papel com um nome pra vc colocar em algum balde e vc faz um calculo tipo A=1, B=2 e assim vai, ae vc soma o valor. Dependendo do valor vc coloca em um balde especifico. Quando alguem pedisse um determinado nome, vc iria calcular o valor e procurar no balde relacionado.
Mas 2 nomes podem ter o mesmo valor, por exemplo Amy e May. Nesse caso vc saberia em qual balde teria o nome mas teria q procurar dentro dele. Se todos os nomes fossem colocados no mesmo balde, vc ja saberia onde procurar mas poderia demorar muito mais tempo. Com isso vc pode ter uma ideia de como funciona o codigo hashing.
Quando vc insere algum objeto num conjunto, ele usa o codigo hashing pra saber onde ele sera colocado, e quando vc quiser procurar a mesma coisa.
É isso ae
.