加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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 ]

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读