2013-11-27 2 views
0

groupBy()을 다차원 문자열 배열의 첫 번째 요소에 사용할 수 있습니까?String [] [] - groupBy()가 가능합니까?

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

각 작동 ..

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

OUTPUT

server1 
server1 
server2 

무엇 GROUPBY에 대한()?

serversAndQueues.groupBy({ it[0]}).each{r-> 
    println r[0] 
} 

는 .. 그것은 exeption에게 발생

OUTPUT

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

답변

1

예, 그것은 않습니다 - 적어도 그것은 그루비의 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]] 
+0

현재 2.1.3 버전을 사용하고 있습니다. ... 업그레이드하고 다시 시도하십시오 ... – user955732

+0

예, 버전 2.2.1에서 작동 중입니다. :) 감사합니다! – user955732

관련 문제