En otras ocasiones hemos planteado códigos que nos permiten eliminar elementos de una lista o eliminar un rango de una lista o eliminado los elementos repetidos de una lista. Pero en el caso de hoy vamos a realizar un enfoque inverso y vamos a ver cómo podemos eliminar elementos tras la idea de mantener elementos en una lista con Java.
Lo primero que vamos a hacer es, como siempre, crear la lista mediante una ArrayList
, en la que añadiremos elementos mediante el método .add()
// ArrayList con tamaño ArrayList<Integer> numeros = new ArrayList<Integer>(); // Añadir elementos a un ArrayList numeros.add(1); numeros.add(2); numeros.add(3); numeros.add(4); numeros.add(5); numeros.add(6); numeros.add(7); numeros.add(8); numeros.add(9);
En este caso hemos creado un ArrayList
de tipo Integer
en el que almacenaremos los números del 1 al 9.
Para realizar el enfoque de mantener elementos vamos a crear un segundo ArrayList
el cual contenga los elementos del primero que nos interesa mantener.
ArrayList<Integer> mantener = new ArrayList<Integer>(); mantener.add(2); mantener.add(4);
Como se puede observar hemos creado un ArrayList
con los números 2 y 4. Estos son los que queremos mantener del primer ArrayList
.
Ahora recurrimos al método .retainAll()
el cual aplicaremos sobre el ArrayList
inicial y que recibe como parámetro el ArrayList
que contiene los elementos a mantener. Quedándonos el siguiente código:
numeros.retainAll(mantener);
Si recorremos el ArrayList inicial para ver qué elementos han quedado, podremos comprobar que solo existen los elementos 2 y 4.
Iterator<Integer> it = numeros.iterator(); while(it.hasNext()) System.out.println(it.next());
No apoyamos en un Iterator para poder recorrer el ArrayList
de forma sencilla.
De esta manera ya habremos conseguido realizar una eliminación de elementos aplicando el concepto de mantener elementos en una lista en Java mediante el método .retainAll()
. Espero que el artículo os sea de utilidad. Nos puedes dejar en comentarios si has utilizado alguna vez esta forma de eliminar elementos de un ArrayList
.