如果另一个列表也包含类似项目,我正在尝试扫描一个列表内容。我也不确定这是否是从我目前使用的列表中浏览列表的最有效方法。我正在尝试运行的代码如下:List list1 = [["GNCSSTDI", "Joe", "Thu Mar 07 19:43:59 EST 2019", "Logged work on 3/7"], ["LMGQYNQU", "Joe", "Thu Mar 07 21:41:50 EST 2019", "logged 3/7"]]List list2 = ["GNCSSTDI", "LMGQYNQU", "AEIOSJWP"]list1.each { l1 -> list2.each { l2 -> if (list1.toString() == l2.toString()) { // match found log.debug("MATCH FOUND") } }}它永远不会迭代到那个 for 循环?我到底做错了什么。如果我没记错的话,每个列表中的第一项应该匹配?谢谢
2 回答
SMILET
TA贡献1796条经验 获得超4个赞
list1是list列表。因此,您应该在从list1获取后再次迭代每个项目
list1.each { l1 ->
l1.each { subL1 ->
list2.each { l2 ->
if (subL1.toString() == l2.toString()) {
// match found
println "match found"
}
}
}
}
慕森卡
TA贡献1806条经验 获得超8个赞
根据您要对结果执行的操作,类似这样的操作可能很有用;
List matches = list1*.intersect(list2).flatten()
您的示例的结果将是: [GNCSSTDI, LMGQYNQU]
添加回答
举报
0/150
提交
取消
