機械翻訳について

別のコレクションからのコレクションの生成

collect()関数を使用して、既存のコレクションから新しいコレクションを生成できます。 結果には、元のコレクションの各要素のクローズを評価した結果が含まれます。

次の例では、uppercasedNamesコレクションは、電話帳のすべてのマップ・エントリの大文字のnameプロパティ値のリストです。

def phonebook = [
                    [name: 'Steve', phone: '+39-123456789'],
                    [name: 'Joey',  phone: '+1-234567890'],
                    [name: 'Sara',  phone: '+39-345678901'],
                    [name: 'Zoe',   phone: '+44-456789123']   
                 ]
def uppercasedNames = phonebook.collect { it?.name?.toUpperCase() }
チェーン内のコレクション関数を「最初の」フィルタに組み合せて、一致するエントリのみの結果を収集できます。 たとえば、次のコードは、イタリアの電話番号を持つphonebookエントリのnameプロパティの値のリストを生成します。
// First filter phonebook collection, then collect the name values
def italianNames = phonebook.findAll { it?.phone?.startsWith('+39-') }
                            .collect { it?.name }