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 ArrayList
y 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?