No Programming, No Life

プログラミング関連の話題や雑記

指定した個数ごとに要素をまとめる

指定した個数(ここでは3つ)ごとに要素をまとめる処理が必要になったので、ひとまず書いてみた。

Groovy

色々書き方がありそうだけど、Groovyだと以下のように#injectを使って出来そう。
(動作確認: Groovy Version: 1.5.7 JVM: 1.6.0_10)

def list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
def group = list.inject([[]]){ result, item ->
   result.last().size() == 3 ? result << [item] : result.last() << item
   return result
}
assert group == [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]]