我是groovy的新手,所以我有一个问题,我有两个列表,我想知道第二个列表中是否还存在第一个列表中的值,它必须返回true或false。
我试图做一个简短的测试,但是没有用……这是我尝试过的:
// List 1
def modes = ["custom","not_specified","me2"]
// List 2
def modesConf = ["me1", "me2"]
// Bool
def test = false
test = modesConf.any { it =~ modes }
print test
但是,如果我将第一个数组中的“ me2”的值更改为“ mex2”,则在必须返回false时将返回true
任何想法?
最佳答案
我能想到的最简单的方法是使用intersect
,让Groovy的真实性发挥作用。
def modes = ["custom","not_specified","me2"]
def modesConf = ["me1", "me2"]
def otherList = ["mex1"]
assert modesConf.intersect(modes) //["me2"]
assert !otherList.intersect(modes) //[]
assert modesConf.intersect(modes) == ["me2"]
如果断言通过,则无需执行第二个操作就可以将公共元素移出交集。 :)