所以,给定:
List l1 = ['A', 'B', 'C', 'D', 'E']
List l2 = ['a', 'b', 'c', 'd', 'e']
List l3 = ['1', '2', '3', '4', '5']
List screen = [ l1, l2, l3 ]
要迭代所有元素,您可以这样做:
3.times { y ->
5.times { x ->
println screen[ y ][ x ]
}
}
或者,你可以使用mod
and intdiv
计算出 x 和 y 位置:
15.times { p ->
def x = p % 5
def y = p.intdiv( 5 )
println screen[ y ][ x ]
}
或者,如果您想要每个子列表中的第一个元素,您可以执行以下操作:
println screen*.head()
或者,假设您想要每个子列表中的第三个元素:
println screen*.getAt( 2 )
或者,您可以将所有项目放入一维列表中:
def inlineScreen = [ *l1, *l2, *l3 ]
然后通过以下方式访问:
15.times { p ->
println inlineScreen[ p ]
}
or:
def x = 1, y = 1
println inlineScreen[ x + y * 5 ]
或者,如果您始终希望将元素放在一起很重要(即,您总是希望将所有数组中的第二个元素放在一起),那么您可以这样做:
// groupedScreen == [['A', 'a', '1'], ['B', 'b', '2'], ['C', 'c', '3'], ['D', 'd', '4'], ['E', 'e', '5']]
def groupedScreen = [ l1, l2, l3 ].transpose()
然后,要获取第三个元素,您可以执行以下操作:
groupedScreen[ 2 ]