假设我们在groovy中有一个列表的平面列表,如下所示:
[[id: 1,title: A],[id: 2, title: B],[id: 3, title: C]]
在B层次为A且C为Child to B的层次结构中转换它的最快方法是什么?
我可以通过迭代来做到这一点,但由于groovy非常有创意,我想知道是否有更聪明的方法。
答案 0 :(得分:2)
如果您不介意改变原始列表及其元素,则可以执行此类操作:
def list = [[id: 1,title: 'A'],[id: 2, title: 'B'],[id: 3, title: 'C']]
list.inject( [:] ) { prev, next ->
if( prev ) {
prev.child = next
}
next
}
assert list.head() == [id:1, title:'A', child:[id:2, title:'B', child:[id:3, title:'C']]]