recorrer lista ejemplos groovy

ejemplos - ¿Cómo recorro una lista y elimino un elemento en Groovy?



groovy ejemplos (4)

Estoy intentando descubrir cómo eliminar un elemento de una lista en groovy desde dentro de un bucle.

static main(args) { def list1 = [1, 2, 3, 4] for(num in list1){ if(num == 2) list1.remove(num) } println(list1) }


Como dice en su comentario que no requiere específicamente un bucle ... Si está contento de modificar su lista original, puede usar removeAll :

// Remove all negative numbers list = [1, 2, -4, 8] list.removeAll { it < 0 }


Creo que puedes hacer:

list - 2;

o...

list.remove(2)

No se requiere bucle.

Si desea utilizar un bucle, supongo que podría mirar utilizando el iterador para eliminar realmente el elemento.

import java.util.Iterator; static main(args) { def list1 = [1, 2, 3, 4] Iterator i = list1.iterator(); while (i.hasNext()) { n = i.next(); if (n == 2) i.remove(); } println(list1) }​

pero no veo por qué querrías hacerlo de esa manera.


Si desea eliminar el elemento con índice 2, puede hacer

list = [1,2,3,4] list.remove(2) assert list == [1,2,4] // or with a loop list = [1,2,3,4] i = list.iterator() 2.times { i.next() } i.remove() assert list == [1,2,4]

Si desea eliminar el (primer) elemento con valor 2, puede hacer

list = [1,2,3,4] list.remove(list.indexOf(2)) assert list == [1,3,4] // or with a loop list = [1,2,3,4] i = list.iterator() while (i.hasNext()) { if (i.next() == 2) { i.remove() break } } assert list == [1,3,4]


list = [1, 2, 3, 4] newList = list.findAll { it != 2 }

Debería darte a todos menos a los 2

Por supuesto, puede tener una razón para requerir el ciclo?