Groovy2.0のtakeWhileとdropWhile

元ネタ http://blog.bloidonia.com/post/26065074691/whats-new-in-groovy-2-0-takewhile-and-dropwhile

特定の条件を満たしている間までの要素をコレクションとして取得するtakeWhileと、特定の条件を満たしている間までの要素を落としたコレクションを取得するdropWhileというのが追加されました。

はじめtakeWhileはfindAllと何が違うのかと思いましたが、findAllは全要素をイテレートするので、途中でイテレートを中断するというところがtakeWhileとの違い。

def items = [1, 3, 9, 12, 8, 19, 2]

assert items.takeWhile { it < 10 } == [1, 3, 9]
assert items.findAll { it < 10 } == [1, 3, 9, 8, 2]

assert items.dropWhile { it < 10 } == [12, 8, 19, 2]