groovy – 如何检查列表是否包含子列表
发布时间:2020-12-14 16:34:16 所属栏目:大数据 来源:网络整理
导读:def l = ["My","Homer"]String s = "Hi My Name is Homer"def list = s.split(" ")println listlist.each{it - l.each{it1 - if (it == it1) println "found ${it}" }} 我想检查大列表(列表)是否包含子列表(l)的所有元素 groovy有没有内置的方法来检查这个或
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}" } } 我想检查大列表(列表)是否包含子列表(l)的所有元素 解决方法
您可以使用Groovy的Collection.intersect(Collection right)方法,并检查返回的Collection是否与作为参数传递的Collection一样大.
您必须先使用String.tokenize()方法从String生成List而不是String.split(),它返回一个String数组: 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) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |