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

Publicado por Robson Fernando Gomes em 17/07/2012

[ Hits: 39.501 ]

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

ZSNES - Emulador de Super Nintendo para GNU/Linux

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

Adquirindo informações de sessão no Oracle

Converter arquivos RPM para DEB

Desligar e reiniciar o computador através da linha de comando

Leitura recomendada

Trabalhando com cores no Java

NullPointerException - O que é?

Um problema raro, mas que pode acontecer com você usando NextLine()

Instalando Tomcat e JDK com apt-get (Debian)

Pacote JDK no Ubuntu 10.04

  

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