quinta-feira, 27 de janeiro de 2011

Como adicionar todos os elementos de uma ArrayList ou coleção à uma outra ArrayList

Em algumas situações pode ser necessário adicionar todos os elementos de uma ArrayList ou outra coleção a uma determinada ArrayList já existente. Isso pode ser feito por meio do uso do método addAll() da classe ArrayList. Na versão 1.5 do Java, este método possui duas assinaturas. Veja a primeira:

public boolean addAll(Collection c)


Aqui nós podemos adicionar à uma ArrayList existente todos os elementos de uma determinada coleção, desde que, é claro, esta coleção implemente ou descenda de alguma classe que implemente a interface Collection. Note também o uso de genéricos na coleção a ser fornecida como argumento. É importante observar que, se passarmos uma coleção de tipos diferentes daquela na qual estamos chamando o método addAll() teremos um erro de compilação.

Veja um exemplo no qual adicionamos todos os elementos de uma ArrayList no final de outra:

import java.util.ArrayList;

public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList nomes = new ArrayList();

// cria uma segunda ArrayList que conterá mais strings
ArrayList nomes2 = new ArrayList();

// adiciona itens na primeira lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");

// adiciona itens na segunda lista
nomes2.add("Osmar");
nomes2.add("Zacarias");

// vamos adicionar os elementos da segunda lista
// no final da primeira lista
nomes.addAll(nomes2);

// vamos exibir o resultado
for(int i = 0; i < nomes.size(); i++){ System.out.println(nomes.get(i)); } System.exit(0); } } A segunda assinatura do método addAll() nos permite definir a posição no ArrayList alvo a partir da qual os elementos da coleção fonte serão adicionados. Veja: public boolean addAll(int index, Collection c)


Eis um exemplo no qual inserimos os elementos de uma ArrayList a partir do segundo elemento da ArrayList alvo. Note que os itens existentes têm suas posições alteradas de forma a acomodar os novos elementos:

import java.util.ArrayList;

public class Estudos{
public static void main(String[] args){
// cria uma ArrayList que conterá strings
ArrayList nomes = new ArrayList();

// cria uma segunda ArrayList que conterá mais strings
ArrayList nomes2 = new ArrayList();

// adiciona itens na primeira lista
nomes.add("Carlos");
nomes.add("Maria");
nomes.add("Fernanda");

// adiciona itens na segunda lista
nomes2.add("Osmar");
nomes2.add("Zacarias");

// vamos adicionar os elementos da segunda lista
// a partir do segundo elemento da primeira lista
nomes.addAll(1, nomes2);

// vamos exibir o resultado
for(int i = 0; i < nomes.size(); i++){
System.out.println(nomes.get(i));
}

System.exit(0);
}
}


Como resultado da execução deste código nós teremos:

Carlos
Osmar
Zacarias
Maria
Fernanda


URL: http://www.arquivodecodigos.net/dicas/2772

Nenhum comentário:

Postar um comentário