El método de retención() en AbstractCollection ayuda a retener elementos de la colección especificada de otra colección y elimina los elementos no coincidentes del resultado.
Sintaxis:
public boolean retainAll(Collection collection)
Parámetros: este método acepta una colección de parámetros que es la colección que contiene los elementos que se necesitan conservar.
Valor devuelto: el método devuelve un valor booleano . Devuelve «verdadero» si los elementos de las colecciones se conservan correctamente y, si no lo son, devuelve el valor «falso».
Excepciones: este método arroja las siguientes excepciones:
- UnsupportedOperationException: si el método de retención() no es compatible con la colección.
- ClassCastException: si el tipo de cualquier elemento de la colección principal es incompatible con la colección especificada (que debe conservarse). Esto es opcional.
- NullPointerException: si la colección principal consta de cualquier elemento nulo y la colección especificada no permite ningún valor nulo o si la colección especificada tiene elementos nulos. Esto es opcional.
A continuación se muestran algunos ejemplos para ilustrar el uso del método preserveAll():
Programa 1
// Java program to illustrate retainAll() method import java.util.*; public class AbstractCollectionDemo { public static void main(String[] args) { // Creating an arraylist AbstractCollection<Object> set1 = new ArrayList<Object>(); // adding values in set 1 list set1.add("one"); set1.add("two"); set1.add("three"); // creating another arraylist AbstractCollection<Object> set2 = new ArrayList<Object>(); // adding values in set 2 list set2.add("three"); set2.add("one"); set2.add("five"); // before invoking retainAll() System.out.println("Set 1 contains:\n" + set1 + "\n"); System.out.println("Set 2 contains:\n" + set2 + "\n"); // invoking retainAll() set2.retainAll(set1); // after invoking retainAll() System.out.println("Set 2 after" + " invoking retainAll() method:\n" + set2); } }
Producción:
Set 1 contains: [one, two, three] Set 2 contains: [three, one, five] Set 2 after invoking retainAll() method: [three, one]
Programa 2: Para mostrar NullPointerException
// Java program to illustrate retainAll() method import java.util.*; public class NullPointerExample { public static void main(String[] args) { // Creating an arraylist // and assigning null to it AbstractCollection<Object> set1 = null; // creating another arraylist AbstractCollection<Object> set2 = new ArrayList<Object>(); // adding values in set 2 list set2.add("one"); set2.add("two"); set2.add("three"); // before invoking retainAll() System.out.println("Set 1 contains:" + set1 + "\n"); System.out.println("Set 2 contains:" + set2 + "\n"); try { // invoking retainAll() set2.retainAll(set1); // after invoking retainAll() System.out.println("Set 2 after invoking " + "retainAll() method:\n" + set2); } catch (Exception e) { System.out.println(e); } } }
Producción:
Set 1 contains:null Set 2 contains:[one, two, three] java.lang.NullPointerException