如何在groovy中从数组中获取公共对象

时间:2017-04-28 07:43:43

标签: grails groovy

def array1=[{id:1,name:"abc"},{id:2,name:"pqr"},{id:3,name:"xyz"}]

def array2=[{id:1,name:"abc"},{id:4,name:"efg"}]

结果应该是

[{id:1,name:"abc"}]

如果array1中的id与array2的id匹配,则它给出该对象

1 个答案:

答案 0 :(得分:2)

我猜数组交集会对你的情况有所帮助:

array1.intersect(array2)

它从两个数组返回公共成员。 但如果你只是在寻找id比较:

 array1.findAll { elem ->
     array2.count { it.id == elem.id } > 0
 }