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 -~----------~----~----~----~------~----~------~--~---
