为了账号安全,请及时绑定邮箱和手机立即绑定

比较两个列表时发生奇怪的事情(groovy)

比较两个列表时发生奇怪的事情(groovy)

呼唤远方 2022-07-27 11:33:48
如果另一个列表也包含类似项目,我正在尝试扫描一个列表内容。我也不确定这是否是从我目前使用的列表中浏览列表的最有效方法。我正在尝试运行的代码如下: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"

            }

        }

    }

}


查看完整回答
反对 回复 2022-07-27
?
慕森卡

TA贡献1806条经验 获得超8个赞

根据您要对结果执行的操作,类似这样的操作可能很有用;

List matches = list1*.intersect(list2).flatten()

您的示例的结果将是: [GNCSSTDI, LMGQYNQU]


查看完整回答
反对 回复 2022-07-27
  • 2 回答
  • 0 关注
  • 184 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号