Atribuir ArrayLists

8 respostas
israelwm

è possível fazer isto?

List arList1 = new ArrayList();
List arList2 = new ArrayList();

arList1.add("blabla");
arList1.add("blabla");
arList1.add("blabla");

arList2 = arList1; // << Isso é possível?

E se o arList2 tiver conteúdo e eu atribuir o conteudo de arList1, ele vai adicionar o conteudo ou vai ser igual ao arList1????

8 Respostas

Thiago_Senna

ai arlist1 está recebendo arlist2… então vc perderá o conteúdo de arlist1…

se vocÊ quiser somar o conteúdo dos dois, ou seja, vc qur q arlist1 contenha seus próprios dados somados com o conteudo do arlist2, vc poderá usar o método addAll()

assim

arlist1.addAll(arlist2);

Abraços!

israelwm

Valeu cara,

eu sei q obviamente se for atribuir uma variável a outra ela passará a ter o conteúdo da outra,

mas no programa q estou usando está dando um pau, vou analizar melhor, valeu novamente.

kina

Thiago Senna:
ai arlist1 está recebendo arlist2… então vc perderá o conteúdo de arlist1…

se vocÊ quiser somar o conteúdo dos dois, ou seja, vc qur q arlist1 contenha seus próprios dados somados com o conteudo do arlist2, vc poderá usar o método addAll()

assim

arlist1.addAll(arlist2);

Abraços!


Não é o contrário?
arlist2 está perdendo o conteúdo e está recebendo o endereço de memória da arlist1?

skill_ufmt

kina:

Não é o contrário?
arlist2 está perdendo o conteúdo e está recebendo o endereço de memória da arlist1?

Realmente é ao contrário, creio qeu o Thiago cometeu um equívoco :wink:

israelwm, poruqe você quer perder a referencia do objeto? por acaso você não esta querendo por varios list1 dentro de list2? ou seja, coleções dentro de coleções?

Thiago_Senna

Oi Kina!

olha só!

arlist1 = arlist2;

com o código acima, arlist1 recebe o mesmo endereço de memória de arlist2. Com isso o objeto que arlist1 apontava passa a não ter nenhuma referência e fica disponível para ser coletado na próxima passagem do GarbageCollector!

Acho que é isso!
Abraços!

Thiago_Senna

Na verdade houve um mau entendido! Se eu traduzir o que eu escrevi acima daria neste código abaixo!

arlist1 = arlist2

Qualquer coisa, gritem, please!!!

Abraços!

_fs
ArrayList a2 = new ArrayList( a1 );
israelwm

Bom na verdade é um sistema de comparação

Ai eu tenho dois ArrayList, uma para o estado inicial e outro para o estado final…

Ai quando faço a comparação dos dois eu cato as diferenças e atribuo o estado final ao estado inicial (estadoInicial = estadoFinal), para não atualizar o estado inicial tudo denovo…

Criado 25 de abril de 2005
Ultima resposta 26 de abr. de 2005
Respostas 8
Participantes 5