English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
El método retainAll() de Java ArrayList solo conserva aquellos elementos que existen tanto en ArrayList como en el conjunto especificado.
Además, todos los elementos que no aparecen en el conjunto especificado se eliminan del arraylist.
La sintaxis del método retainAll() es:
arraylist.retainAll(Collection c);
colección- Sólo los elementos que existen en el conjunto se conservan en el arraylist.
Si se elimina un elemento del arraylist, devuelve true
La clase de los elementos existentes en el arraylist no es compatible con la especificadaconjuntoLa clase de los elementos del arraylist no es compatible, lanza la excepción ClassCastException
Si el arraylist contiene elementos null y el especificadoconjuntoNo permite elementos null, de lo contrario lanza NullPointerException
import java.util.ArrayList; class Main { public static void main(String[] args) { //Crear ArrayList ArrayList<String> languages1 = new ArrayList<>(); //Agregar elementos al ArrayList languages1.add("JavaScript"); languages1.add("Python"); languages1.add("Java"); System.out.println("ArrayList 1: " + languages1); //Crear otro ArrayList ArrayList<String> languages2 = new ArrayList<>(); //Agregar elementos al ArrayList languages2.add("Inglés"); languages2.add("Java"); languages2.add("Python"); System.out.println("ArrayList 2: " + languages2); //Mantener los elementos comunes languages1.retainAll(languages2); System.out.println("Elementos comunes: " + languages1); } }
Resultado de salida
ArrayList 1: [JavaScript, Python, Java] ArrayList 2: [Inglés, Java, Python] Elementos comunes: [Python, Java]
En el ejemplo anterior, creamos dos ArrayList llamados languages1y languages2del ArrayList. Nota esta línea,
languages1.retainAll(languages2);
Aquí, crearemos un arraylist languages2como parámetro para el método retainAll(). Este método elimina los elementos que no aparecen en languages1eliminar los elementos que no aparecen en languages2todos los elementos. Por lo tanto, solo se conservan los elementos comunes.
import java.util.ArrayList; import java.util.HashSet; class Main { public static void main(String[] args) { //Crear ArrayList ArrayList<Integer> numbers = new ArrayList<>(); //Agregar elementos al ArrayList numbers.add(1); numbers.add(2); numbers.add(3); System.out.println("ArrayList: " + numbers); //Crear un HashSet HashSet<Integer> primeNumbers = new HashSet<>(); //Agregar elementos al HashSet primeNumbers.add(2); primeNumbers.add(3); primeNumbers.add(5); System.out.println("HashSet: " + primeNumbers); //Mantener elementos comunes en ArrayList numbers.retainAll(primeNumbers); System.out.println("Elementos comunes: " + numbers); } }
Resultado de salida
ArrayList: [1, 2, 3] HashSet: [2, 3, 5] Elementos comunes: [2, 3]
En el ejemplo anterior, creamos una lista de array llamada numbers y una colección de hash llamada primeNumbers. Nota esta línea,
numbers.retainAll(primeNumbers);
Aquí, el método retainAll() eliminará todos los elementos que no existen en primeNumbers y solo mantendrá los elementos comunes. Por lo tanto,2y3Se mantiene en arraylist numbers.