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

Publicado por Robson Fernando Gomes em 17/07/2012

[ Hits: 38.720 ]

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

Executar comandos do terminal Linux em Java

Executando vários comandos em sequência no GNU/Linux

Fazer o leitor de cd ejetar a bandeja

Entendendo os getters e setters em Java

Gerar jar no Eclipse e executar

Leitura recomendada

Apostilas de Java para download

Compilando com o javac

Listar todos arquivos de uma pasta com Java

Pacote JDK no Ubuntu 10.04

Exibir ponto em expressão regular (regex)

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts