在Groovy中同时循环多个List

Man*_*hal 4 groovy

我喜欢同时循环多个列表,如下所示:

def p = ["A", "B", "C"]
def q = ["d", "f", "g"]
for (x,y in p,q) {

   println x
   println y

}
Run Code Online (Sandbox Code Playgroud)

我可以做以下的事情:

def p = ["A", "B", "C"]
def q = ["d", "f", "g"]
for (i=0; i<q.size(); i++) {

   println p[i]
   println q[i]

}
Run Code Online (Sandbox Code Playgroud)

但我很想知道以前格式的解决方案.知道如何在groovy中实现同样的目标吗?

Opa*_*pal 9

你可以尝试transpose:

def p = ["A", "B", "C"];
def q = ["d", "f", "g"];
for (i in [p,q].transpose()) {
    println i[0]
    println i[1]
}
Run Code Online (Sandbox Code Playgroud)

  • 或者`[p,q] .transpose().每个{a,b - > println a; println b}` (9认同)