iberck
3/8/2017 - 7:40 PM

Collections utils [join, collect, for, each, foreach, eachWithIndex]

Collections utils [join, collect, for, each, foreach, eachWithIndex]

findAll

Filtra elementos de la colección en base a una condición:

assert [1,3] == [1,2,3].findAll{ it % 2 == 1 }

join

Join une los elementos y crea un String: assert "1, 2, 3" == [1,2,3].join(", ")

collect

Collect recorre cada elemento de la lista y lo transforma. Retorna una nueva lista con los elementos modificados:

assert [2,4,6] == [1,2,3].collect { it * 2 }

una manera corta de utilizar collect es con el operador spread-dot *, sin embargo este operador solo soporta invocar métodos o propiedades existentes dentro de cada uno de los elementos del array mientras que collect permite aplicar cualquier operación a todos los elementos del array y retornar otro array con los elementos modificados:

['Denver', 'Cheyenne', 'Reno', 'Sacramento']*.toUpperCase()

Ejemplos útiles:

List books = (1..4).collect {
  new Book(title: "The Art of the computer Programming, Vol. $it")
}