Странное происшествие происходит при сравнении двух списков (заводной) - PullRequest
0 голосов
/ 08 марта 2019

Я пытаюсь сканировать содержимое одного списка, если другой список также содержит аналогичный элемент.

Я также не уверен, что это самый эффективный способ просмотреть список из того, что я сейчас использую.

Код ниже, который я пытаюсь запустить:

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 ]

1 голос
/ 08 марта 2019

В зависимости от того, что вы хотите сделать с результатами, может пригодиться что-то подобное:

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

Результатом вашего примера будет: [GNCSSTDI, LMGQYNQU]

1 голос
/ 08 марта 2019

list1 - это list списков. Итак, вы должны повторять каждый элемент снова после извлечения из list1

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