groovy/groovy-core — pull request #22 by timyates (2012-02-06 15:32:45+00:00)
Title: GROOVY-5283 Add a collate method to List

I have often found a need for collating or partitioning a List into a List of sub-lists of a given size.

This question has been asked on StackOverflow a couple of times as well

ie:

[1,2,3,4,5].collate( 3 ) == [ [ 1, 2, 3 ], [ 4, 5 ] ]

This could be chained to generate a multi-dimensional list of lists, ie:

(1..9).collate( 3 ).collate( 2 ) == [ [ [1,2,3], [4,5,6] ],
[ [7,8,9] ] ]

Hope the pull request is ok... I think I covered all bases with my tests