2014-01-07 15 views
12

私はコレクションを持っており、特定の要素を見つけて変換したいと考えています。私は2つの閉鎖でこれを行うことができますが、それが1つだけで可能かどうか疑問に思っていましたか?結果がnullでない場合にのみ収集する

def c = [1, 2, 3, 4] 

def result = c.findAll { 
    it % 2 == 0 
} 

result = result.collect { 
    it /= 2 
} 

私の本当のユースケースは、私は特定のファイルの束を見つけて、その完全修飾パッケージ名にそれらを変換したい、Gradleのです。

答えて

23

あなたはfindResultsを使用することができます。

右私の鼻の下で全体の時間だった
c.findResults { i -> 
    i % 2 == 0 ? // if this is true 
     it/2 : // return this 
     null  // otherwise skip this one 
} 
+0

...ありがとう。 (質問が十分に古い時に回答として受け入れる) – Lerp

+0

ええと、これは私の営業と同じではありませんか? 'findResults'は最初のnullでない要素の後で停止します。 – Lerp

+0

あなたは 'findResult'を入力しませんでした;-) –

関連する問題