| Autor |
Mensagem |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2006 11:16:08
|
felixcomputer
JavaTeenager
![[Avatar]](/images/avatar/6dfc35c47756e962ef055d1049f1f8ec.jpg)
Membro desde: 07/06/2006 11:12:19
Mensagens: 171
Localização: Belém - Pa
Offline
|
Pessoal, eu estava analisando um código e me deparei com o método:
e esse outro que me parece ter relação com um primeiro, pesquisando eu descobri que saum métodos herdados da class Object:
Alguém poderia me dar uma ajuda sobre o funcionamento desses métodos?
Valeu
|
Samuel Félix
O temor do Senhor é o principio da sabedoria!
http://sfelixjr.googlepages.com |
|
|
 |
|
|
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2006 12:59:54
|
fabiofeber
Entusiasta Java
Membro desde: 10/04/2005 23:39:26
Mensagens: 18
Offline
|
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2006 13:26:45
|
ZehOliveira
GUJ Ranger
Membro desde: 12/12/2003 22:13:49
Mensagens: 964
Localização: Maceio-AL
Offline
|
O equals é um método que compara se um objeto é igual a outro. Se você não sobrescrever, é usada a implementação padrão de Object, que é "um objeto é igual a outro caso seja a mesma instância na memória". Caso precise de uma comparação mais detalhada, você deve sobrescrever o método a seu modo (por exemplo, dois objetos pessoas são iguais se tiverem o mesmo cpf). Lembrando que a relação de igualdade deve ser reflexiva, simétrica e transitiva.
O hashCode é um método que retorna um código hash de um objeto. Sempre que sobrescrever o equals, sobrescreva também o hashCode. Ele é usado normalmente para agilar a busca em collections.
This message was edited 1 time. Last update was at 26/03/2009 12:00:31
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 07/06/2006 15:30:36
|
felixcomputer
JavaTeenager
![[Avatar]](/images/avatar/6dfc35c47756e962ef055d1049f1f8ec.jpg)
Membro desde: 07/06/2006 11:12:19
Mensagens: 171
Localização: Belém - Pa
Offline
|
Olá Fabio e José,
Obrigado pela ajuda, uma duvida que eu tive quanto ao codigo que eu estava analisando é pq Devel naum era uma classe e sim uma interface, ou seja, a gente naum instancia a interface, por isso fiquei meio confuso com o instanceof, quanto ao hashcode, ficou mais esclarecido, mas ainda naum tenho clareza quanto a relação entre os dois, José, vou ler o seu artigo,
Grato,
Samuel
|
Samuel Félix
O temor do Senhor é o principio da sabedoria!
http://sfelixjr.googlepages.com |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/03/2009 14:56:39
|
Dil14
Thread.start()
![[Avatar]](/images/avatar/e00747f11c12e85717de726cc6c2f188.jpg)
Membro desde: 20/09/2008 17:46:42
Mensagens: 26
Offline
|
Pessoal, tenho dúvidas também em relação ao método equals, alguém poderia me dar um exemplo de como fazer uma comparação entre dois valores inteiros de Arrays distintos, utilizando esse método?
Abraço
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/03/2009 15:11:37
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/03/2009 15:22:28
|
ViniGodoy
Moderador
![[Avatar]](/images/avatar/1921493b5362e63fbe8983f4bd54157d.png)
Membro desde: 11/12/2006 08:22:01
Mensagens: 20580
Localização: Curitiba/PR
Offline
|
ZehOliveira wrote:O hashCode é um método que retorna um código hash de um objeto. Sempre que sobrescrever o equals, sobrescreva também o hashCode. Ele é usado normalmente para agilar a busca em collections.
Só complementando, essa obrigação existe porque a função de hashcode deve retornar valores iguais para objetos iguais (é para isso que ela serve).
Ou seja se:
Então
Note que o contrário pode não ser verdadeiro. Dois objetos de hashCode iguais não necessariamente são iguais, embora, numa boa função de hash isso será muito provável.
Quanto ao equals... testar com instanceOf pode quebrar uma das premissas do equals que diz:
Portanto, isso recai numa implementação errada. Deixo como lição de casa para você achar um caso onde usando instanceof essa propriedade não valha.
|
@ViniGodoy - Lattes
Tem dúvidas de Java? Poste no fórum! Não respondo dúvidas de java via MP!
Ponto V! - Desenvolvimento de Jogos Profissional - @Pontov - Facebook
Projeto Towel - Swing de uma forma inteligente (Novo lar do ObjectTableModel e do Auto-Filtro).
Ei... você está usando DefaultTableModel no seu projeto??
Não faça isso! Veja: http://www.guj.com.br/posts/list/15/199067.java#1001295 |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/03/2009 17:16:24
|
Dil14
Thread.start()
![[Avatar]](/images/avatar/e00747f11c12e85717de726cc6c2f188.jpg)
Membro desde: 20/09/2008 17:46:42
Mensagens: 26
Offline
|
Lavieri wrote:
Só isso Lavieri?!
Fico ateh envergonhado.
Brigado,
Vlw!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/03/2009 18:01:13
|
Lavieri
GUJ Master
![[Avatar]](/images/avatar/7b41bfa5085806dfa24b8c9de0ce567f.png)
Membro desde: 27/01/2004 13:39:31
Mensagens: 1851
Localização: João Pessoa / PB
Offline
|
valores primitivos são testado via == ... ou seja... boolean, int, double, long, char, short ... etc ...
Objetos que precisam ser testaod via equals
|
Sun Certified Java Programmer (SCJP 6)
"Any fool can write code that a computer can understand. Good programmers write code that humans can understand."
-Martin Fowler et al, Refactoring: Improving the Design of Existing Code, 1999
Meu blog -> http://blog.tomazlavieri.com.br/ |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 27/03/2009 20:26:41
|
Dil14
Thread.start()
![[Avatar]](/images/avatar/e00747f11c12e85717de726cc6c2f188.jpg)
Membro desde: 20/09/2008 17:46:42
Mensagens: 26
Offline
|
Lavieri wrote:valores primitivos são testado via == ... ou seja... boolean, int, double, long, char, short ... etc ...
Objetos que precisam ser testaod via equals
Claro, claro - eh pq eu tava c a ideia do objeto Array na cabeça, q acabei me esquecendo dos tipos primitivos.
Vlw!
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 16/02/2010 20:49:39
|
wilson_sm
What is classpath?
Membro desde: 22/01/2010 12:13:28
Mensagens: 5
Localização: São Paulo
Offline
|
será que posso colocar mais uma dúvida aqui?
no caso eu estou fazendo comparações entre dois objetos:
eu sei que a comparação == entre os dois objetos não terá validade, acredito que teria que utilizar o método .equals
porém fazendo dessa forma, não consigo o retorno true.
Sei também que se fizer assim:
o objeto conta2 é a mesma posição de conta1, e por isso q retorna valor true.
agora que vem a questão: Qual a forma de comparar 2 objetos por completo?
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2011 09:28:54
|
regis_hideki
Debugger
Membro desde: 29/03/2010 19:22:50
Mensagens: 51
Offline
|
Se você quiser que duas contas sejam consideradas iguais se possuem mesmo dono e mesmo saldo (acho que o mais correto seria verificar pelo número da conta + número da agência + nome do banco), basta fazer um método que verifique essas condições, ou sobrescreva o equals.
|
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 12/04/2011 09:37:40
|
Giulliano
GUJ Master
![[Avatar]](/images/avatar/7f5a17b792b687fc4c227a5c5e569dd8.jpg)
Membro desde: 14/11/2006 19:29:38
Mensagens: 1627
Localização: São Paulo
Offline
|
http://blog.caelum.com.br/ensinando-que-e-o-hashcode/
|
Oracle Certified Master, Java EE 5 Enterprise Architect
Oracle Certified Professional Java Programmer
GiuLLianO MoRRoNi
<UnTouChAbLe> |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 24/06/2011 09:11:15
|
andrestrindade
JavaTeenager
![[Avatar]](/images/avatar/6220d78a81df90871ed5d07ad6023bf7.jpg)
Membro desde: 01/09/2008 14:06:23
Mensagens: 150
Offline
|
Esse post do do link http://blog.caelum.com.br/ensinando-que-e-o-hashcode/ ... Está com uma péssima didática.
Parece que tem gente que faz artigos/tutoriais pra quem já sabe!
|
Quanto mais aprendo, percebo a vasta gama de conhecimentos que ainda não possuo. |
|
|
 |
![[Post New]](/templates/default/images/icon_minipost_new.gif) 09/05/2012 21:03:42
|
david.javaman@gmail.com
What is classpath?
Membro desde: 21/08/2010 16:27:45
Mensagens: 8
Offline
|
Ola pessoal segue um post que explica em datalhes o metodo equals no blog Cursaki
http://cursaki.blogspot.com.br/2012/05/o-metodo-equals.html
|
|
|
 |
|
|