我是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"]


如果断言通过,则无需执行第二个操作就可以将公共元素移出交集。 :)

09-11 18:42