reduce by groovy

2019-08-08  本文已影响0人  泠泉
 @Test
    void mergeList(){
        List l1 = [[id:1,a:1,b:2],[id:2,a:11,b:22]]
        List l2 = [[id:1,c:3,d:3],[id:2,c:33,d:44]]
        List l3 = [[id:1,e:5,f:6],[id:2,e:55,f:66]]
        List ls= l1+=l2+=l3
        println ls.inject([:]){acc,item->
            acc.get(item.id as int, [:]).putAll(item)
            acc
        }.values()
    }

acc.get(item.id as int, [:]).putAll(item)
这里需要注意弱类型会导致map有相同key值, 所以map的key值应指定类型。

上一篇下一篇

猜你喜欢

热点阅读