Groovy比较两个列表以查找具有公共元素的列表
如何比较groovy中的两个列表Groovy比较两个列表以查找具有公共元素的列表,groovy,compare,Groovy,Compare,如何比较groovy中的两个列表 [N1OB] == [ABCD9, ABCD8, ABCD7] -> should return false [ABCD1, ABCD1, ABCD1, ABCD1] == [ABCD9, ABCD8, ABCD7] -> should return false [ABCD1, ABCD1, ABCD1, ABCD1] == [ABCD9, ABCD8, ABCD1] -> should return true 有没有groovy函数可以
[N1OB] == [ABCD9, ABCD8, ABCD7] -> should return false
[ABCD1, ABCD1, ABCD1, ABCD1] == [ABCD9, ABCD8, ABCD7] -> should return false
[ABCD1, ABCD1, ABCD1, ABCD1] == [ABCD9, ABCD8, ABCD1] -> should return true
有没有groovy函数可以实现这一点
提前谢谢我已经解决了
List newList = ["ABCD9", "ABCD8", "ABCD7"]
List oldList = ["dfgdfg"]
if(newList.intersect(oldList))
println("difference->")
认为这是正确的,有人能建议我用
List newList = ["ABCD9", "ABCD8", "ABCD7"]
List oldList = ["dfgdfg"]
if(newList.intersect(oldList))
println("difference->")
如果列表1中的任何元素在列表2中,那么认为它是正确的,是否有人建议disjoint()
返回false
。如果您添加否定,您将有:
!(['N1OB'].disjoint(['ABCD9', 'ABCD8', 'ABCD7'])) // false
!(['ABCD1', 'ABCD1', 'ABCD1', 'ABCD1'].disjoint(['ABCD9', 'ABCD8', 'ABCD7'])) // false
!(['ABCD1', 'ABCD1', 'ABCD1', 'ABCD1'].disjoint(['ABCD9', 'ABCD8', 'ABCD1']) ) // true
disjoint()
如果列表1中的任何元素在列表2中,则返回false
。如果您添加否定,您将有:
!(['N1OB'].disjoint(['ABCD9', 'ABCD8', 'ABCD7'])) // false
!(['ABCD1', 'ABCD1', 'ABCD1', 'ABCD1'].disjoint(['ABCD9', 'ABCD8', 'ABCD7'])) // false
!(['ABCD1', 'ABCD1', 'ABCD1', 'ABCD1'].disjoint(['ABCD9', 'ABCD8', 'ABCD1']) ) // true
相交是实现目标的途径。你的问题应该更多地反映这一点……请记住,intersect不会返回布尔值,而是返回两个列表的交集。在您的逻辑中,是Groovy Truth验证了至少存在一个交叉点。优点:-如果需要,您可以获得公共元素,如
def commonItems=newList.intersect(oldList)
:)如果您只需要使用布尔值进行检查,也可以使用!newList.disjoint(oldList)
disjoint()
返回一个布尔值。@dmahapatro,我没有明白你的意思,我想intersection+groovy truth
很好,因为meintersect是实现你目标的途径。你的问题应该更多地反映这一点……请记住,intersect不会返回布尔值,而是返回两个列表的交集。在您的逻辑中,是Groovy Truth验证了至少存在一个交叉点。优点:-如果需要,您可以获得公共元素,如def commonItems=newList.intersect(oldList)
:)如果您只需要使用布尔值进行检查,也可以使用!newList.disjoint(oldList)
disjoint()
返回一个布尔值。@dmahapatro,我没有明白你的意思,我想intersection+groovy truth
对我来说很好