Groovy 字符串[][]-groupBy()是否可能?

Groovy 字符串[][]-groupBy()是否可能?,groovy,multidimensional-array,Groovy,Multidimensional Array,是否可以对多维字符串数组中的第一个元素执行groupBy() String[][] serversAndQueues = [["server1","queue"],["server1","queue1"],["server2","queue2"]] 每种方法都有效。 serversAndQueues.each{r-> println r[0] } 输出 server1 server1 server2 groovy.lang.MissingMethodException: No

是否可以对多维字符串数组中的第一个元素执行groupBy()

String[][] serversAndQueues = [["server1","queue"],["server1","queue1"],["server2","queue2"]]
每种方法都有效。

serversAndQueues.each{r->
    println r[0]
}
输出

server1
server1
server2
groovy.lang.MissingMethodException: No signature of method: [[Ljava.lang.String;.groupBy() is applicable for argument types: (ConsoleScript12$_run_closure2) values: [ConsoleScript12$_run_closure2@1e5182f]
Possible solutions: grep(), grep(), drop(int), countBy(groovy.lang.Closure), grep(java.lang.Object), grep(java.lang.Object)...
groupBy()呢?

serversAndQueues.groupBy( { it[0]}).each{r->
    println r[0]
}
。。它抛出一个exection

输出

server1
server1
server2
groovy.lang.MissingMethodException: No signature of method: [[Ljava.lang.String;.groupBy() is applicable for argument types: (ConsoleScript12$_run_closure2) values: [ConsoleScript12$_run_closure2@1e5182f]
Possible solutions: grep(), grep(), drop(int), countBy(groovy.lang.Closure), grep(java.lang.Object), grep(java.lang.Object)...
是的,至少Groovy 2.2.X是这样的:

String[][] serversAndQueues = [["server1","queue"],["server1","queue1"],["server2","queue2"]]

serversAndQueues.groupBy { it[ 0 ] }.each { key, value ->
    println "$key => $value"
}
印刷品:

server1 => [[server1, queue], [server1, queue1]]
server2 => [[server2, queue2]]