removeIf: eliminar elementos de una lista en Groovy

Las listas en Groovy son objetos ArrayList de Java, uno de sus métodos es removeIf(), que podemos usar para eliminar elementos de la lista si coinciden con el valor que le indiquemos. Tomaremos el código del programa mostrado aquí y vamos a mejorarlo.

Código fuente

Groovy es un lenguaje muy sencillo, cuya sintaxis está inspirada en Python, no obliga al programador a usar algún estilo de programación y esa es la razón por la cual en Groovy no es obligatorio declarar una clase y en su interior un método estático main() como en Java. Esto es opcional!!.

Creando lista

Creamos una pequeña lista de 16 elementos que nos sirva como ejemplo para trabajar con removeIf().

Para crear una lista solo debemos encerrar los elementos que deseamos entre […], así de sencillo es. La palabra clave def es usada para definir de forma dinámica variables e instancias de objetos.

Crear objeto Scanner

Necesitamos crear un objeto de tipo Scanner() para leer información ingresada desde la terminal, será usado para leer el elemento que el usuario desea eliminar.

Llamamos a la clase Scanner() y pasamos como argumento el campo statico in de tipo InputStream que se encuentra en la clases System(). El objeto es llamado input.

Mostrando la lista actual

Antes de preguntarle al usuario sobre qué elemento desea eliminar, hay que mostrar la lista actual con sus elementos. Esto se hace usando la función println() e interpolamos el string con la lista: ${arrList}.

Solicitar y leer información ingresada por el usuario

En esta parte el programa interactúa con el usuario, le solicita al usuario un valor y luego lo lee.

Usamos el método nextInt() del objeto Scanner creado anteriormente para leer el valor ingresado por el usuario y por último es almacenado en la variable «item».

Eliminando elemento de la lista y mostrando el resultado

Dependiendo del resultado del método removeIf {…} en la sentencia if, se mostrará un mensaje con la lista modificada o informando al usuario que el elemento no ha sido encontrado.

El método removeIf {…} recibe una expresión booleana que compara si cada elemento de la lista asignado a la variable «it» es igual al valor de «item» y los va eliminando. Por ultimo, devuelve true si los elementos han sido eliminados o false si el elemento no ha sido encontrado en la lista.

Probando el programa

Es hora de ejecutar el programa y verificar si funciona como lo deseamos.

[fixedtorres@linuxero]$ groovy EliminarElementosDeUnaLista_removeIf.groovy
Lista actual: [4, 77, 34, 5, 12, 83, 4, 33, 5, 77, 27, 83, 5, 64, 12, 33]

Ingrese el elemento que desea eliminar: 5
Lista modificada: [4, 77, 34, 12, 83, 4, 33, 77, 27, 83, 64, 12, 33]
[fixedtorres@linuxero]$

Todo funciona como lo esperado, el programa elimina todos los elementos que sean iguales al valor que he ingresado!!.

Añadir un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *