Na verdade, de acordo com
http://java.sun.com/j2se/1.5.0/docs/api/java/lang/Object.html#hashCode()
se vc não muda seu hashcode quando mudar seu equals, sua classe está
errada pq um método não funciona como deveria.

(na verdade vc quebrou a conformidade de tipo, mas isto é assunto para
depois de comp 2)

Além disto, não construimos uma classe pensando se vamos ou não
utilizá-la num hashset ou hashmap, até pq o ideal é que a gente tente
sempre reutilizar as coisas. Então, ao fazer o equals, faça tb o
hashcode correto. Nunca se sabe o que vem pela frente.

Em tempo: no eclipse, com o botão direito na classe e utilizando o menu
"source" (eu acho...) tem a opção de gerar o par equals e hashcode...
basta escolher os campos que participarão da comparação. Ele já escreve
um hashcode de baixa colisão tb.

Abraço!

Peter P. Lupo
Undergraduating in Computer Science DCC/UFRJ
Sun Certified Java Associate
http://pplupo.googlepages.com/
Cell. +55 (21) 81742487



Raphael Duarte Paiva wrote:
> Nem sempre, só quando formos utilizar hashes, como um HashMap, por
> exemplo.
>
> O motivo é que o hash deve ser único para cada objeto, então como o
> equals diferencia um objeto dos outros em uma comparação, o hash deve
> ser condizente com o equals. Por exemplo: se em sua aplicação, se duas
> pessoas tem o mesmo nome, elas são necessariamente a mesma pessoa,
> elas devem ter o mesmo hash e se eu fizer pessoa1.equals(pessoa2),
> deve retornar true.
>
> Resumindo, o hash é como uma identidade de um objeto. Se dois objetos
> são iguais, devem ter o mesmo hash, assim como o equals entre os dois
> deve retornar true.
>
>
> []'s
>
> On Mon, Oct 13, 2008 at 17:41, Gustavo Cury <[EMAIL PROTECTED]
> <mailto:[EMAIL PROTECTED]>> wrote:
>
>     Porque sempre devemos sobrescrever o hashcode quando
>     sobrescrevemos o equals ?
>      
>     Obrigado
>     Gustavo Cury
>
>     ------------------------------------------------------------------------
>     Instale a Barra de Ferramentas com Desktop Search e ganhe
>     EMOTICONS para o Messenger! É GRÁTIS!
>     <http://www.msn.com.br/emoticonpack>
>
>
>
>
> -- 
> Abraços
> Raphael Duarte Paiva
> Graduando em Ciência da Computação
>
> >

--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups "Comp 
2 - Geral" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/comp2-geral?hl=en
-~----------~----~----~----~------~----~------~--~---

Responder a