组合列表列表的Groovy方法

2sbarzqh  于 2022-11-01  发布在  其他
关注(0)|答案(2)|浏览(158)
Input >> list = [[1,2,3], [6], [3,4,5,6]]

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

我想知道有没有比这更直接的事

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

比如默认Groovy闭包或方法?

kq4fsx7k

kq4fsx7k1#

尝试flatten,即:

list.flatten()

或者,要获得所需的输出:

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

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

yc0p9oo02#

有些人可能会错过@Desty的评论,在这里作为答案发布:
请注意,this的语义不同,因为它递归遍历列表,在以下情况下产生不同的结果:[[1,2,3],[4,[5]],[6]].flatten().执行OP连接的最简洁方式是list.collectMany { it }
示例:

list = [[1,2,3], [6], [3,4,5,6]]
assert list.collectMany{ it }.sort() == [1,2,3,3,4,5,6,6]

相关问题