我的代码段如下,并且我想在条件检查的其他部分忽略/删除列表中的值。
offerRecords.remove(tariffOffer)似乎不起作用

offerRecords.each { tariffOffer ->

    handsetData.each { hs ->
        if (tariffOffer.HANDSET_BAND.stringValue() == hs.HANDSET_BAND?.stringValue()) {
            //println 'condition is satisfied and set the handset id ****** '
            handset.add(hs.HANDSET_PKEY_ID?.stringValue())
        }

        if (handset.size() > 0) {
            // need to call a method
            recHandset = applyHandsetRulesCHL(tariffOffer, handset)
        }
        else {
            // ignore/remove the tariffOffer
            offerRecords.remove(tariffOffer) // i know it doesn't serve the purpose
        }

最佳答案

只需在处理之前过滤列表:

def filteredList = handsetData.findAll{handset.size() > 0}


并处理过滤后的结果。顺便说一句,我不明白handset正文中的each{}是什么,但是我想你明白了。

关于java - 从常规列表中删除特定值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16730738/

10-09 07:18