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

Publicado por Robson Fernando Gomes em 17/07/2012

[ Hits: 40.284 ]

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

Convertendo tipo "data" para "calendar" em Java

Executar comandos do terminal Linux em Java

Converter arquivos RPM para DEB

Listar todos arquivos de uma pasta com Java

Instalando o PostgreSQL no GNU/Linux

Leitura recomendada

Instalar Java 8 (Oracle) no Ubuntu 14.04 LTS 32 bits, com plugin para Mozilla 40.0

Convertendo Matriz para Lista em Java e Lista para Matriz

Como converter ASCII para char ou char para ASCII em Java

Java - Instalação em três passos no Ubuntu

Java 6 no Linux Debian 4.0 Etch

  

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