Copiar o conteúdo de uma lista para outra lista em Java

Publicado por Robson Fernando Gomes em 17/07/2012

[ Hits: 23.473 ]

Blog: http://maguscode.blogspot.com/

 


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;


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.

import java.util.ArrayList; import java.util.List; public class CopyList { public static void main(String args[]) { List listaOriginal = new ArrayList(); listaOriginal.add("A"); listaOriginal.add("B"); listaOriginal.add("C"); System.out.println("Lista Original"); exibirLista(listaOriginal); List listaCopia = listaOriginal; System.out.println("Lista Cópia"); exibirLista(listaCopia); listaCopia.clear(); System.out.println("Lista Cópia"); exibirLista(listaCopia); System.out.println("Lista Original"); exibirLista(listaOriginal); } public static void exibirLista(List lista) { for (String i : lista) { System.out.print(i); } System.out.println(); } }


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);


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:

import java.util.ArrayList; import java.util.List; public class CopyList { public static void main(String args[]) { List listaOriginal = new ArrayList(); listaOriginal.add("A"); listaOriginal.add("B"); listaOriginal.add("C"); System.out.println("Lista Original"); exibirLista(listaOriginal); List listaCopia = new ArrayList(listaOriginal); System.out.println("Lista Cópia"); exibirLista(listaCopia); listaCopia.clear(); System.out.println("Lista Cópia"); exibirLista(listaCopia); System.out.println("Lista Original"); exibirLista(listaOriginal); } public static void exibirLista(List lista) { for (String i : lista) { System.out.print(i); } System.out.println(); } }


Abaixo, é possível visualizar a execução do código acima:


Dica previamente publicada em meu blog:

Outras dicas deste autor

Conversão de encodings

Como aumentar a memória do Tomcat7 no Linux

Verificando se um número é par ou ímpar em Java

Copiando um arquivo com Java

NullPointerException - O que é?

Leitura recomendada

Declarando IRPF pela internet com Linux

Pacote JDK no Ubuntu 10.04

Apostilas de Java para download

Convertendo Matriz para Lista em Java e Lista para Matriz

Instalação do Java 8 no Linux Mint e Ubuntu

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário