Método ArrayList retainAll() en Java

El método RetainAll() de ArrayList se usa para eliminar todos los elementos de la lista de arreglos que no están contenidos en la colección especificada o retiene todos los elementos coincidentes en la instancia actual de ArrayList que coinciden con todos los elementos de la lista de colección pasada como parámetro al método.
Sintaxis:

public boolean retainAll(Collection C)

Parámetros: La C es la colección que contiene los elementos que se conservarán en la lista.
Valor devuelto: el método devuelve un valor booleano verdadero si la lista cambia en absoluto como resultado de la llamada; de lo contrario, es falso.
Excepciones:

  1. ClassCastException: si la clase de un elemento de este ArrayList es incompatible con la colección Passed. Esto es opcional.
  2. NullPointerException: si la lista contiene un elemento nulo y la colección pasada no permite elementos nulos, o si la colección especificada es nula. Esto también es opcional.

Los siguientes programas se utilizan para ilustrar el método Java.util.ArrayList.retainAll():
Programa 1: pasar la colección ArrayList como parámetro al método.

// Java code to illustrate retainAll() method
import java.util.ArrayList;
public class GFG {
    public static void main(String[] args)
    {
        // Creating an empty array list
        ArrayList<String> bags = new ArrayList<String>();
  
        // Add values in the bags list.
        bags.add("pen");
        bags.add("pencil");
        bags.add("paper");
  
        // Creating another array list
        ArrayList<String> boxes = new ArrayList<String>();
  
        // Add values in the boxes list.
        boxes.add("pen");
        boxes.add("paper");
        boxes.add("books");
        boxes.add("rubber");
  
        // Before Applying method print both lists
        System.out.println("Bags Contains :" + bags);
        System.out.println("Boxes Contains :" + boxes);
  
        // Apply retainAll() method to boxes passing bags as parameter
        boxes.retainAll(bags);
  
        // Displaying both the lists after operation
        System.out.println("\nAfter Applying retainAll()"+
        " method to Boxes\n");
        System.out.println("Bags Contains :" + bags);
        System.out.println("Boxes Contains :" + boxes);
    }
}
Producción:

Bags Contains :[pen, pencil, paper]
Boxes Contains :[pen, paper, books, rubber]

After Applying retainAll() method to Boxes

Bags Contains :[pen, pencil, paper]
Boxes Contains :[pen, paper]

Programa 2: pasar una colección diferente de ArrayList como parámetro al método.

// Program Demonstrate retainAll() method With
// Collection different then ArrayList as a parameter of the method
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Creating an empty array list
        HashSet<String> bags = new HashSet<String>();
  
        // Add values in the bags Set.
        bags.add("pen");
        bags.add("ink");
        bags.add("paper");
  
        // Creating another empty array list
        ArrayList<String> boxes = new ArrayList<String>();
  
        // Add values in the boxes list.
        boxes.add("pen");
        boxes.add("paper");
        boxes.add("books");
        boxes.add("rubber");
        boxes.add("ink");
  
        // Before Applying method print both list and set.
        System.out.println("Bags Contains :" + bags);
        System.out.println("Boxes Contains :" + boxes);
  
        // Apply retainAll() method to boxes passing bags as parameter
        boxes.retainAll(bags);
  
        // Displaying both the lists after operation
        System.out.println("\nAfter Applying retainAll()" + 
        " method to Boxes\n");
        System.out.println("Bags Contains :" + bags);
        System.out.println("Boxes Contains :" + boxes);
    }
}
Producción:

Bags Contains :[paper, ink, pen]
Boxes Contains :[pen, paper, books, rubber, ink]

After Applying retainAll() method to Boxes

Bags Contains :[paper, ink, pen]
Boxes Contains :[pen, paper, ink]

Programa 3: Ilustrando el error arrojado por el método de retención()

// Program to illustrate error thrown by retainAll() method
import java.util.*;
  
public class GFG {
  
    public static void main(String[] args)
    {
  
        // Creating an empty array list
        ArrayList<Integer> list1 = null;
  
        /// Creating another empty array list
        ArrayList<String> list2 = new ArrayList<String>();
  
        // Add values in the list2 list.
        list2.add("pen");
        list2.add("paper");
        list2.add("books");
        list2.add("rubber");
  
        // Before Applying method print both lists
        System.out.println("list1 Contains :" + list1);
        System.out.println("list2 Contains :" + list2);
  
        // Apply retainAll() method to list2 passing list1 as parameter
        list2.retainAll(list1);
  
        // Displaying both the lists after operation
        System.out.println("\nAfter Applying retainAll()"+ 
        " method to list2\n");
        System.out.println("list1 Contains :" + list1);
        System.out.println("list2 Contains :" + list2);
    }
}

Producción:

list1 Contains :null
list2 Contains :[pen, paper, books, rubber]

Error de tiempo de ejecución:

Exception in thread "main" java.lang.NullPointerException
    at java.util.Objects.requireNonNull(Objects.java:203)
    at java.util.ArrayList.retainAll(ArrayList.java:714)
    at GFG.main(GFG.java:26)

Referencia: https://docs.oracle.com/javase/7/docs/api/java/util/ArrayList.html#retainAll(java.util.Collection)

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *