Copiar o conteúdo de uma lista para outra lista em Java
Dica publicada em Java / Introdução
Copiar o conteúdo de uma lista para outra lista em Java
Introdução
Hoje vou explicar de maneira simples e rápida, como copiar todos os itens de uma lista para uma outra lista (java.util.List), sendo possível modificar o conteúdo das listas sem interferir uma na outra, como ocorre normalmente quando é simplesmente copiada a referência da variável.Cópia com referência
Caso você deseja copiar uma referência de uma lista para outra, basta utilizar o sinal de igual (=) para atribuir o valor da lista "a" a lista "b", porém, sempre que for alterado o conteúdo de uma das listas, o valor da outra também será modificado.Sintaxe:
List listaA = new ArrayList();
listaA.add(Item_T);
listaA.add(Item_T);
List listaB = listaA;
listaA.add(Item_T);
listaA.add(Item_T);
List listaB = listaA;
Onde:
- Tipo_T - Tipo de objeto que a lista guarda.
- Item_T - Item adicionado à lista.
Abaixo, é possível visualizar um exemplo de um programa onde é copiado o conteúdo de uma lista para outra, contendo referência na memória de seu conteúdo.
Abaixo, é possível visualizar a execução do código acima.
Cópia sem referência
Caso você deseja copiar uma lista para outra, tornando possível a modificação do conteúdo de ambas sem que haja conflito no conteúdo uma da outra, é necessário utilizar um processo bem simples (não que seja o único), basta colocar a lista "a" dentro do construtor da lista "b".Sintaxe:
List listaA = new ArrayList();
listaA.add(Item_T);
listaA.add(Item_T);
List listaB = new ArrayList(listaA);
listaA.add(Item_T);
listaA.add(Item_T);
List listaB = new ArrayList(listaA);
Onde:
- Tipo_T - Tipo de objeto que a lista guarda.
- Item_T - Item adicionado à lista.
Abaixo, é possível visualizar um exemplo de cópia sem referência:
Abaixo, é possível visualizar a execução do código acima:
Dica previamente publicada em meu blog: