Dúvida Questao (HashCode e Equals)  XML
Índice dos Fóruns » Certificação Java
Autor Mensagem
evertonsilvagomesjava
Virtual Machine Man
[Avatar]

Membro desde: 23/08/2009 13:14:01
Mensagens: 734
Online



Resposta: 2:2:1:1

Pq quando ele altera o valor de "i" em k2 ele nao remove k2 da lista? Eu errei pq achei que era 2:2:1:0 debugando aqui realmente a resposta é 2:2:1:1.



This message was edited 1 time. Last update was at 08/02/2010 17:11:29

vmsb11
JavaGuru

Membro desde: 25/08/2008 12:35:00
Mensagens: 207
Offline

boa pergunta essa....
posso estar errado mas eu acho que quando vc adiciona um elemento no conjunto ele faz uma cópia desse elemento por isso a mundança que vc faz em k2 não reflete no conjunto....
mas não sei se estou certo....
a outra possibilidade(talvez a que seja a melhor)....
eh que quando vc altera um elemento que adicionou no conjunto como foi feito no código nada será verificado se existe um outro elemento igual ao que vc modificou....
o conjunto só testa se ha elementos semelhantes no método add....
evertonsilvagomesjava
Virtual Machine Man
[Avatar]

Membro desde: 23/08/2009 13:14:01
Mensagens: 734
Online

Puts deixa ver se entende, depois de adicionado um elemento na lista se for alterado o seu estado não tera uma verificaçao com isso nao tera como remover ele da lista?
vmsb11
JavaGuru

Membro desde: 25/08/2008 12:35:00
Mensagens: 207
Offline

tem como remover somente se vc passar um objeto com as msm informações do objeto que vc modificou na lista....
evertonsilvagomesjava
Virtual Machine Man
[Avatar]

Membro desde: 23/08/2009 13:14:01
Mensagens: 734
Online

Mas ai teria que ser o mesmo objeto, e consequentemente pra isso acontecer so teria como se eu nao alterasse seu estado num eh n?
vmsb11
JavaGuru

Membro desde: 25/08/2008 12:35:00
Mensagens: 207
Offline

não....
olha só esse exemplo:

entendeu????....
evertonsilvagomesjava
Virtual Machine Man
[Avatar]

Membro desde: 23/08/2009 13:14:01
Mensagens: 734
Online

Tem certeza que funciona? Fiz o teste aqui funcionou nao..

vmsb11
JavaGuru

Membro desde: 25/08/2008 12:35:00
Mensagens: 207
Offline

ops perdão....
realmente não funciona por causa dos contratos(hashcode e equals)....
eh realmente pra não tem como vc remover o objeto depois que vc altera o seu estado....
eh uma boa questão, mas só lembrando que esse código mostra uma má prática de programação....
evertonsilvagomesjava
Virtual Machine Man
[Avatar]

Membro desde: 23/08/2009 13:14:01
Mensagens: 734
Online

legal mesmo essa questão, nesse caso ele remove o objeto pelo seu estado inicial em que foi add de acordo com o contrato de hashing e equals, né.
vmsb11
JavaGuru

Membro desde: 25/08/2008 12:35:00
Mensagens: 207
Offline

isso msm....
 
Índice dos Fóruns » Certificação Java
Ir para:   
Powered by JForum 2.1.8 © JForum Team