2012-07-19 27 views
33
Input >> list = [[1,2,3], [6], [3,4,5,6]] 

Output >> [1,2,3,3,4,5,6,6] 

Chcę wiedzieć, czy coś jest prostsze niż tenMetoda Groovy do listy list

l = [] 
list.each{ l = l + it } 
println l 

jak domyślny porywające zamknięcia lub sposobu połączyć?

Odpowiedz

61

Spróbuj flatten, tj:

list.flatten() 

Lub, aby uzyskać żądany sposób wydruku:

list = [[1,2,3], [6], [3,4,5,6]] 

assert list.flatten().sort() == [1,2,3,3,4,5,6,6] 
+0

działa! SO mówi, że muszę poczekać jeszcze 4 minuty, aby zaakceptować odpowiedź :) –

+6

Należy zauważyć, że semantyka tego jest inna, ponieważ powtarza się przez listy, dając różne wyniki w takich sytuacjach: '[[1,2,3] , [4, [5]], [6]]. Flatten() '. Najczystszym sposobem na wykonanie konkatenacji OP jest 'list.collectMany {it}'. – Desty