Eliminar un rango del ArrayList

19/Oct/2021 Java , Deja un comentario
Programación en Java

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?

Vídeos sobre Java


¿Algo que nos quieras comentar?

Déjanos tu comentario, no te preocupes que tu email no será publicado

*

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.