Groovy 2d数组
发布时间:2020-12-14 16:28:59 所属栏目:大数据 来源:网络整理
导读:我有3个数组,l1 [,],l2 [,]和l3 [,].每个都有5个字符. e.g. l1["A","B","C","D","E"] 2d阵列由这些组成 screen = [l1[],l2[],l3[]] 所以它看起来如此: screen = [[,[,]] 我怎么能遍历这个数组? 我打电话给屏幕[5]?或屏幕[l1 [5]]? 我可以吗: for (i in
我有3个数组,l1 [,],l2 [,]和l3 [,].每个都有5个字符.
e.g. l1["A","B","C","D","E"] 2d阵列由这些组成 screen = [l1[],l2[],l3[]] 所以它看起来如此: screen = [[,[,]] 我怎么能遍历这个数组? 我打电话给屏幕[5]?或屏幕[l1 [5]]? 我可以吗: for (i in 1..15){ println screen[i] } 请帮忙!!! 如何迭代数组并调用不同的部分,例如每个子数组的第一个元素? 谢谢 解决方法
所以,给定:
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和intdiv来计算x和y位置: 15.times { p -> def x = p % 5 def y = p.intdiv( 5 ) println screen[ y ][ x ] } 或者,如果您想要每个子列表中的第一个元素,您可以执行以下操作: println screen*.head() 或者,假设您想要每个子列表中的第3个元素: println screen*.getAt( 2 ) 或者,您可以将所有项目放入一维列表中: def inlineScreen = [ *l1,*l2,*l3 ] 然后访问: 15.times { p -> println inlineScreen[ p ] } 要么: def x = 1,y = 1 println inlineScreen[ x + y * 5 ] 或者,如果您总是希望将元素组合在一起很重要(例如,您总是希望将所有数组中的第二个元素组合在一起),那么您可以执行以下操作: // groupedScreen == [['A','a','1'],['B','2'],['C','3'],['D','4'],['E','e','5']] def groupedScreen = [ l1,l3 ].transpose() 然后,要获得第3个元素,您可以这样做: groupedScreen[ 2 ] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |