簡體   English   中英

比較兩個列表時發生奇怪的情況(常規)

[英]Weird occurrence happening when comparing two list (groovy)

我試圖掃描一個列表中的內容,如果另一個列表中也包含類似的項目。

我也不確定這是否是我當前使用的清單中最有效的方法。

我嘗試運行的以下代碼:

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循環嗎? 我到底在做什么錯。 如果我沒記錯的話,每個列表中的第一項都應該匹配。

謝謝

list1list列表。 因此,您應該在從list1提取后再次迭代每個項目

list1.each { l1 ->
    l1.each { subL1 ->
        list2.each { l2 ->
            if (subL1.toString() == l2.toString()) {
                // match found
                println "match found"
            }
        }
    }
}

根據您想要對結果執行的操作,類似這樣的操作可能會有用。

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

您的示例的結果將是:[GNCSSTDI,LMGQYNQU]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM