Collections  XML
Índice dos Fóruns » Java Avançado
Autor Mensagem
marceloedreiPJ
Virtual Machine Man
[Avatar]

Membro desde: 03/07/2003 00:00:00
Mensagens: 582
Offline

Pessoal

Não estou entendo esse codigo vejam



a saida é
[{sobrenome=Ribeiro}, {sobrenome=Ribeiro}]


nao deveria ser
[{nome=Marcelo}, {sobrenome=Ribeiro}]


se eu fizer assim

a saida será

[Marcelo, Ribeiro]


Alguem poderia explicar pq no primeiro trecho é sobreposto os valores no vector?

Obrigado

http://
[WWW] aim icon [ICQ]
dokPJ
JavaEvangelist
[Avatar]

Membro desde: 03/09/2004 00:00:00
Mensagens: 384
Localização: 247986352
Offline

Quando você adiciona algum objeto no Vector, você não está criando uma cópia do HashTable dentro do Vector e sim apenas está passando a referência na memória do objeto. Na segunda vez que vc adiciona o HashTable, ele continua sendo o mesmo objeto ainda, mesmo que esteja modificado.

Resumindo, tanto a posição 0 quanto a posição 1 do Vector apontam para o mesmo objeto, sendo imprimido apenas que está dentro deste objeto.
[WWW] [ICQ]
marceloedreiPJ
Virtual Machine Man
[Avatar]

Membro desde: 03/07/2003 00:00:00
Mensagens: 582
Offline

entendi....e haveria uma maneira d passar uma copia do hash ao inves de apenas sua referencia??

Valeu!

http://
[WWW] aim icon [ICQ]
dokPJ
JavaEvangelist
[Avatar]

Membro desde: 03/09/2004 00:00:00
Mensagens: 384
Localização: 247986352
Offline



Uma sugestão é a de utilizar o método clone().
[WWW] [ICQ]
marceloedreiPJ
Virtual Machine Man
[Avatar]

Membro desde: 03/07/2003 00:00:00
Mensagens: 582
Offline

Valeu!!!

http://
[WWW] aim icon [ICQ]
 
Índice dos Fóruns » Java Avançado
Ir para:   
Powered by JForum 2.1.8 © JForum Team