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?