Esta vez os traigo el método split para listas (List) y mapas (Map) en groovy. Se añaden a las propias clases mediante metaprogramación.
Si estáis utilizando grails, podéis incluirlos en el Bootstrap de vuestra aplicación para tenerlos siempre disponibles.
List.metaClass.split << { size ->
def result = []
if (delegate.size()>0)
{
def max = delegate.size() - 1
def regions = (0..max).step(size.toInteger())
def end
regions.each { start ->
end = Math.min(start + size.toInteger() - 1, max)
result << delegate[start..end]
}
}
return result
}
Map.metaClass.split << { size ->
def result = []
int i=0
int pos=0
for (el in delegate)
{
if (i<size)
{
if (!result[pos])
{
result[pos]=[:]
}
i++
}
else
{
pos++
result[pos]=[:]
i=1
}
result[pos][el.key]=el.value
}
return result
}
Espero que os sirvan.
Enjoy!


0 comentarios:
Publicar un comentario