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

Publicado por Robson Fernando Gomes em 17/07/2012

[ Hits: 39.572 ]

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

Instalação do servidor WebLogic no Linux

Alinhando texto dentro de um JTextArea em Java Swing

Pegar o próximo valor de uma sequence no Oracle

Como descobrir o tamanho de um arquivo em Java

Entendendo os getters e setters em Java

Leitura recomendada

Universidade XTI - Vídeo aulas

BlueJ - Para iniciantes em Java e programação orientada a objetos

Arredondar e diminuir o número de casas decimais em Java

Removendo o Quick Access do Eclipse Juno

Adquirindo informações de sessão no Oracle

  

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