Método retainAll() de Java ArrayList
El método retainAll() se utiliza para conservar aquellos elementos del arraylist que también existen en la colección especificada, es decir, elimina los elementos que no existen en la colección especificada.
La sintaxis del método retainAll() es:
arraylist.retainAll(Collection c);
Nota:arraylist es un objeto de la clase ArrayList.
Descripción de parámetros:
- collection - parámetro de colección
Valor de retorno
Devuelve true si se eliminan elementos del arraylist.
Lanza una excepción ClassCastException si los elementos presentes en la clase arraylist son incompatibles con los elementos de la clase de la colección especificada.
Lanza NullPointerException si arraylist contiene elementos null y la colección especificada no permite elementos null.
Ejemplo
Conservar los elementos de la colección especificada:
Ejemplo
class Main {
public static void main(String[] args){
// crear un array dinámico
ArrayList<String> sites = new ArrayList<>();
sites.add("Google");
sites.add("Ejemplo");
sites.add("Taobao");
System.out.println("ArrayList 1: " + sites);
// crear otro array dinámico
ArrayList<String> sites2 = new ArrayList<>();
// añadir elementos al array dinámico
sites2.add("Wiki");
sites2.add("Ejemplo");
sites2.add("Google");
System.out.println("ArrayList 2: " + sites2);
// conservar elementos
sites.retainAll(sites2);
System.out.println(Elementos conservados: + sites);
}
}
La ejecución del programa anterior produce el siguiente resultado:
ArrayList 1: [Google, Ejemplo, Taobao] ArrayList 2: [Wiki, Ejemplo, Google] 保留的元素: [Google, Ejemplo]
En el ejemplo anterior, creamos dos arrays dinámicos llamados sites y sites2.
Observa esta línea:
sites.retainAll(sites2);
En el ejemplo, pasamos el array sites2 como parámetro del método retainAll(). Este método elimina de sites los elementos que no existen en sites2.
Elementos comunes entre ArrayList y HashSet:
Ejemplo
import java.util.HashSet;
class Main {
public static void main(String[] args) {
// crear un array
ArrayList<Integer> numbers = new ArrayList<>();
// añadir elementos al array
numbers.add(1);
numbers.add(2);
numbers.add(3);
System.out.println("ArrayList: " + numbers);
// crear un objeto HashSet
HashSet<Integer> primeNumbers = new HashSet<>();
// añadir elementos al HashSet
primeNumbers.add(2);
primeNumbers.add(3);
primeNumbers.add(5);
System.out.println("HashSet: " + primeNumbers);
// conservar los elementos comunes en arraylist
numbers.retainAll(primeNumbers);
System.out.println(Elementos comunes: + numbers);
}
}
La ejecución del programa anterior produce el siguiente resultado:
ArrayList: [1, 2, 3] HashSet: [2, 3, 5] 共有元素: [2, 3]
En el ejemplo anterior, creamos un ArrayList llamado numbers y un HashSet llamado primeNumbers.
Observa esta línea:
numbers.retainAll(primeNumbers);
En el código, el método retainAll() elimina del array dinámico numbers todos los elementos que no existen en primeNumbers.
Otras extensiones
Java ArrayList