Ir al contenido

Eliminar un rango del ArrayList

Ya hemos visto cómo podemos eliminar un elemento de un ArrayList o eliminar todas las ocurrencias de un elemento dentro del ArrayList. Ahora lo que vamos a ver es cómo podemos eliminar un rango del ArrayList con Java. Es decir, eliminar desde una posición hasta otra posición, ambas posiciones incluidas. Siempre empezamos creando el ArrayListy añadiendo información al mismo. En este caso vamos a crear una clase que extienda un ArrayList. Y esto es así ya que vamos apoyarnos en un método protegido del ArrayList que no podemos invocar directamente. Así definiremos la clase EliminarRangoLista de la siguiente forma:

public class EliminarRangoLista extends ArrayList<Integer> { ... }

Así que para crear nuestro ArrayList lo que haremos será instanciar la clase que acabamos de crear:

// ArrayList con tamaño
EliminarRangoLista numeros = new EliminarRangoLista();

Y le añadiremos una serie de elementos. Al ser un ArrayList de enteros, le añadimos números.

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);

Lo siguiente será pasar a eliminar un rango del ArrayList que acabamos de crear. Es decir, queremos eliminar los elementos que estén entre la posición X e Y. Por ejemplo, vamos a eliminar los elementos entre la posición 3 y 6, ambas inclusive. Para ello vamos a utilizar el método .removeRange() del ArrayList, el cual recibe como parámetro las posiciones inicial y final del rango a eliminar. Hay que saber que el método .removeRange() es un método protegido, es por ello que hemos creado una clase que extendía la clase ArrayList. Si pasamos a codificar, el código a ejecutar es el siguiente:

numeros.removeRange(3,6);

De esta manera el método .removeRange() habrá eliminado los elementos que hay entre las posiciones 3 y 6. Lo podremos comprobar si recorremos el ArrayList mediante una clase Iterator.

Iterator<Integer> it = numeros.iterator();
while(it.hasNext())
System.out.println(it.next());

Ya habremos conseguido eliminar un rango del ArrayList con Java sabiendo manejar el método protegido .removeRange(). ¿Crees que será de utilidad cuando estés manejando listas dentro de tus programas?

Foto de Víctor Cuervo

Víctor Cuervo

Programador, Arquitecto IT, álter ego de Línea de Código, amante de las tecnologías, generador de conocimiento y facilitador del aprendizaje.

Descarga el código de Eliminar un rango del ArrayList

Cómo utilizar el método protegido .removeRange() para poder eliminar un rango del ArrayList desde una posición inicial hasta una final.

Descargar código