このようなgroovyに3レベルのネストされたリストがあります
rList = [[[12, name1],[22,name2],[49,name3]],[[33, name5],[22,name6],[21, name7]]]
最初のサブリストから名前の値を取得するためにそれを反復するにはどうすればよいので、rsublist = [name1, name2, name3]
前もって感謝します。
このようなgroovyに3レベルのネストされたリストがあります
rList = [[[12, name1],[22,name2],[49,name3]],[[33, name5],[22,name6],[21, name7]]]
最初のサブリストから名前の値を取得するためにそれを反復するにはどうすればよいので、rsublist = [name1, name2, name3]
前もって感謝します。
rList = [[[12, 'name1'], [22, 'name2'], [49, 'name3']], [[33, 'name5'], [22, 'name6'], [21, 'name7']]]
names = rList[0]*.getAt(1)
assert names == ['name1', 'name2', 'name3']
まず、rList[0]
最初のサブリストである[[12, name1], [22, name2], [49, name3]]
. 次に、拡散演算子を*.
使用して、同じメソッド をそのリストのすべての要素に適用しますgetAt(1)
。これにより、サブリストの 2 つおきの要素を含むリストが返されます。これは、探していた値です:)
rList[0].collect { it[1] }
スプレッド演算子に慣れていない場合は、同等であり、より馴染みのある which を使用することもできます。
@epidemian の回答に基づいて、より読みやすいバージョンを次に示します。
rList.first()*.last()