Groovy:将列表的一些元素添加到另一个列表中

时间:2013-10-04 13:35:53

标签: groovy

list1 = [[1,'Rob','Ben', 'Ni', 'cool'],[2,'Jack','Jo','Raj','Giri'],[...]....]

list2 = [['20 May 2013',20],['25 May 2013',26],[...]....]

将有100条此类记录

我希望结果列表如

list1 = [[1, '20 May 2013', 20, 'Rob','Ben','Ni', 'cool'],[2,'25 May 2013', 26, 'Jack','Jo','Raj','Giri']]

任何建议?

3 个答案:

答案 0 :(得分:3)

[list1, list2].transpose()*.flatten()

假设list1list2的基数相同。

<强>更新
问题现在已大幅修改,但您可以通过扩展转置获得您想要的内容,如下所示:

[list1, list2].transpose()*.flatten()
                           .collect{[it[0], it[-2..-1], it[1..-3]]}*.flatten()

答案 1 :(得分:0)

这个怎么样?

def i = 0
def combined = list1.collect([]) { it + list2[i++] }

答案 2 :(得分:0)

结果行不是两个列表行的串联 - 它接受第二行并将其插入到第一行的索引1中,而不是最后两个元素。所以

[list1, list2].transpose()*.flatten()

不会起作用 - 这很酷:-)。然而,

[list1,list2].transpose().collect { def l = it.flatten(); l[0..0] + l[5..6] + l[1..2] }

将结果显示在问题中。我完全承认站在巨人的背后: - )

相关问题