Si necesita agregar todos los elementos de una colección ArrayList() a otra, puede usar el método addAll() de la clase Java ArrayList . En este artículo, explicaré cómo funciona este método y proporcionaré algunos ejemplos de código.

Firma del método ArrayList addAll()

Hay dos variantes del método java.util.ArrayList.addAll . Aquí están.

boolean addAll(Collection<? extends E> c)
Este método devuelve verdadero si la lista se modificó como resultado de la llamada, pero lo más importante es que agrega todos los elementos de la colección especificada al final de esta lista, en el orden en que los devuelve el iterador de la colección especificada. El elemento c es la lista que se agregará a su ArrayList . Además, el método lanza NullPointerException si la colección especificada es nula.

boolean addAll(int index, Collection<? extends E> c)
Este método inserta todos los elementos de la colección c especificada en esta lista, comenzando en el índice de posición especificado.

Ejemplo de sintaxis de ArrayList addAll()

Así es como se ve la llamada al método ArrayList addAll() en un programa Java:

myList.addAll(myNewList)) 
Donde myList es el ArrayList original y myNewList es una lista, todos los valores de los cuales se agregarán a myList si existen.

myList.addAll(2, myNewList)) 
Una variante del método ArrayList addAll() con dos parámetros. Todos los elementos de myNewList se agregarán a myList , y el primer elemento myNewList[0] se convertirá en myList[2] , myNewList[1] ahora es myList[3] , y así sucesivamente. Los elementos de la lista original, a partir de número 2, se trasladan al final de la nueva lista combinada.

Ejemplos de código de ArrayList addAll()

Ahora es el momento de algunos ejemplos de código. Vamos a crear una lista de nuestros amigos, llamarla 'amigos' y agregar sus nombres allí. Digamos que comenzamos la universidad e hicimos algunos amigos nuevos a la vez. Es un buen momento para crear una nueva lista de amigos para ellos. Pasó el tiempo, te aseguraste de que tus nuevos amigos fueran reales una vez, así que decidiste moverlos a la lista principal de amigos. Puedes hacerlo usando el método addAll() . En el programa imprimiremos en la consola la lista inicial de amigos, la lista de nuevos amigos, la lista actualizada de amigos, así como el valor booleano devuelto por el método addAll( ) . Devuelve verdadero si la lista original se modificó debido a la operación del método y falso si esto no sucedió.

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);
       }
   }
la salida es:
[Johnny, Ivy, Rick] [Andrew, Alex, Neil] verdadero Mi nueva lista con nuevos amigos agregados: [Johnny, Andrew, Alex, Neil, Ivy, Rick]
Si hacemos la misma operación pero intentamos agregar una lista vacía a amigos, el método funcionará, pero devolverá falso, no verdadero ya que la lista original no ha cambiado.

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);
   }
}
La salida es:
[Johnny, Ivy, Rick] [] false Mi nueva lista con nuevos amigos añadidos: [Johnny, Ivy, Rick]
Ahora probemos el método addAll() con dos parámetros.

boolean addAll(int index, Collection<? extends E> c)
Agreguemos nuevos amigos a la lista nuevamente, no en la cola, sino en el medio. Digamos justo después de Johnny, que en nuestro caso es el elemento con el número cero.

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);
   }
}
El resultado esperado del trabajo del programa: Andrew ahora es el número 1 en la lista combinada, Alex - 2, Neil - 3 e Ivy, que antes era el número 1, ha pasado a la 4ª posición.
[Johnny, Ivy, Rick] [Andrew, Alex, Neil] verdadero Mi nueva lista con nuevos amigos agregados: [Johnny, Andrew, Alex, Neil, Ivy, Rick]