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函数可以

如何比较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
对我来说很好