Se precisar adicionar todos os elementos de uma coleção ArrayList() a outra, você pode usar o método addAll() da classe Java ArrayList . Neste artigo, explicarei como esse método funciona e fornecerei alguns exemplos de código.

Assinatura do método ArrayList addAll()

Existem duas variantes do método java.util.ArrayList.addAll . Aqui estão eles.

boolean addAll(Collection<? extends E> c)
Este método retorna true se a lista foi alterada como resultado da chamada, mas o mais importante, ele adiciona todos os elementos da coleção especificada no final desta lista, na ordem em que são retornados pelo Iterator da coleção especificada. O elemento c é a lista que será adicionada ao seu ArrayList . Além disso, o método lança NullPointerException se a coleção especificada for nula.

boolean addAll(int index, Collection<? extends E> c)
Este método insere todos os elementos na coleção especificada c nesta lista, começando no índice de posição especificado.

Exemplo de sintaxe ArrayList addAll()

É assim que a chamada para o método ArrayList addAll() se parece em um programa Java:

myList.addAll(myNewList)) 
Onde myList é o ArrayList original e myNewList é uma lista, todos os valores serão adicionados a myList se existirem.

myList.addAll(2, myNewList)) 
Uma variante do método ArrayList addAll() com dois parâmetros. Todos os elementos de myNewList serão adicionados a myList , e o primeiro elemento myNewList[0] se tornará myList[2] , myNewList[1] agora é myList[3] , e assim por diante. Os elementos da lista original, começando de número 2, são transportados para o final da nova lista de combinação.

Exemplos de código ArrayList addAll()

Agora é hora de alguns exemplos de código. Vamos criar uma lista de nossos amigos e chamá-la de 'amigos' e adicionar seus nomes lá. Digamos que começamos a faculdade e fizemos alguns novos amigos ao mesmo tempo. É um bom momento para criar uma nova lista de amigos para eles. O tempo passou, você garantiu que seus novos amigos fossem reais uma vez, então decidiu movê-los para a lista de amigos principal. Você pode fazer isso usando o método addAll() . No programa, imprimiremos no console a lista inicial de amigos, a lista de novos amigos, a lista de amigos atualizada, bem como o valor booleano retornado pelo método addAll( ) . Retorna true se a lista original foi alterada devido ao funcionamento do método e false se isso não aconteceu.

import java.util.ArrayList;
import java.util.List;

public class AddAllDemo {
       public static void main(String[] args) {

           List<String> friends = new ArrayList<>();
           friends.add("Johnny");
           friends.add("Ivy");
           friends.add("Rick");
           System.out.println(friends);
           List<String> newFriends = new ArrayList<>();
           newFriends.add("Andrew");
           newFriends.add("Alex");
           newFriends.add("Neil");
           System.out.println(newFriends);
           //let's print out the value addAll() method returns
           //here it's true because list friends was changed
           System.out.println(friends.addAll(newFriends));
           System.out.println("My new list with new friends added: ");
           System.out.println(friends);
       }
   }
a saída é:
[Johnny, Ivy, Rick] [Andrew, Alex, Neil] verdadeiro Minha nova lista com novos amigos adicionados: [Johnny, Andrew, Alex, Neil, Ivy, Rick]
Se fizermos a mesma operação, mas tentarmos adicionar uma lista vazia a amigos, o método funcionará, mas retornará falso, não verdadeiro, pois a lista original não foi alterada.

import java.util.ArrayList;
       import java.util.List;

public class AddAllDemo3 {
   public static void main(String[] args) {
       List<String> friends = new ArrayList<>();
       friends.add("Johnny");
       friends.add("Ivy");
       friends.add("Rick");
       System.out.println(friends);
       List<String> newFriends = new ArrayList<>();
       System.out.println(newFriends);
       System.out.println(friends.addAll(newFriends));
       System.out.println("My new list with new friends added: ");
       System.out.println(friends);
   }
}
A saída é:
[Johnny, Ivy, Rick] [] false Minha nova lista com novos amigos adicionados: [Johnny, Ivy, Rick]
Agora vamos tentar o método addAll() com dois parâmetros.

boolean addAll(int index, Collection<? extends E> c)
Vamos adicionar novos amigos à lista novamente, não na cauda, ​​\u200b\u200bmas no meio. Digamos logo após Johnny, que no nosso caso é o elemento de número zero.

import java.util.ArrayList;
import java.util.List;

public class AddAllDemo2 {
   public static void main(String[] args) {

       List<String> friends = new ArrayList<>();
       friends.add("Johnny");
       friends.add("Ivy");
       friends.add("Rick");
       System.out.println(friends);
       List<String> newFriends = new ArrayList<>();
       newFriends.add("Andrew");
       newFriends.add("Alex");
       newFriends.add("Neil");
       System.out.println(newFriends);
       System.out.println(friends.addAll(1, newFriends));
       System.out.println("My new list with new friends added: ");
       System.out.println(friends);
   }
}
O resultado esperado do trabalho do programa: Andrew é agora o número 1 na lista combinada, Alex - 2, Neil - 3, e Ivy, que era o número 1 antes, passou para a 4ª posição.
[Johnny, Ivy, Rick] [Andrew, Alex, Neil] verdadeiro Minha nova lista com novos amigos adicionados: [Johnny, Andrew, Alex, Neil, Ivy, Rick]