gpt4 book ai didi

groovy - 如何检查列表是否包含子列表

转载 作者:行者123 更新时间:2023-12-04 04:48:07 28 4
gpt4 key购买 nike

def l = ["My", "Homer"]
String s = "Hi My Name is Homer"

def list = s.split(" ")
println list

list.each{it ->
l.each{it1 ->
if (it == it1)
println "found ${it}"
}
}

我想检查大列表( list )是否包含子列表( l )的所有元素
groovy 是否有任何内置方法来检查这一点,或者我在上面的代码中可以做什么?

最佳答案

您可以使用 Groovy 的 Collection.intersect(Collection right)方法并检查返回的集合是否与作为参数传递的集合一样大。

您必须使用 String.tokenize()从字符串而不是 String.split() 生成列表之前的方法它返回一个字符串数组:

def sublist = ["My", "Homer"]
def list = "Hi My Name is Homer".tokenize()

assert sublist.size() == list.intersect(sublist).size()

或者,您可以使用 Groovy 的 Object.every(Closure closure)方法并检查子列表的每个元素是否包含在列表中:
assert sublist.every { list.contains(it) }

但是,最短的方法是使用标准的 Java Collection API:
assert list.containsAll(sublist)

关于groovy - 如何检查列表是否包含子列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1871372/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com