如果符合groovy中的条件,则跳到下一个循环

如果符合groovy中的条件,则跳到下一个循环,groovy,Groovy,我是groovy的新手,如果这是一个愚蠢的问题,请原谅 我正在解析一个XML文件,并将水果名称提取到列表中。下面是我不完整的代码片段 .... .... def xmlOutput = proc.in.text def lists = new XmlSlurper().parseText(xmlOutput) def listOffruits = lists.fruits.entry.name //Below is the fuit list for which I want to skip

我是groovy的新手,如果这是一个愚蠢的问题,请原谅

我正在解析一个XML文件,并将水果名称提取到列表中。下面是我不完整的代码片段

....
....
def xmlOutput = proc.in.text
def lists = new XmlSlurper().parseText(xmlOutput)
def listOffruits = lists.fruits.entry.name

//Below is the fuit list for which I want to skip the loop
def myList = ["orange", "apple", "banana", "grapes"]

listOffruits.each(){
  def fruitName = it.text()
    //Not sure how on the logic
println "- found Fruit Name not on the list'${fruitName }'"
}
我想检查/比较列表中是否存在水果名-“myList”,如果存在,跳过循环或转到下一个迭代器,如果不继续循环


我不知道到底该如何实现这一目标。有什么建议吗。谢谢。

您可以使用
findAll
将水果保留在列表之外

def unfoundFruits = listOffruits.findAll { f -> !myList.contains(f) }
unfoundFruits.each { f ->
    println "- found Fruit Name not on the list '${f}'"
}

您可以使用
findAll
将水果保留在列表之外

def unfoundFruits = listOffruits.findAll { f -> !myList.contains(f) }
unfoundFruits.each { f ->
    println "- found Fruit Name not on the list '${f}'"
}

您可以使用
集合#减号
,例如:

def listOffruits = ["pineapple", "apple", "strawberry", "grapes"]
def myList = ["orange", "apple", "banana", "grapes"]
println "Fruits not on the list: ${listOffruits.minus myList}"

您可以使用
集合#减号
,例如:

def listOffruits = ["pineapple", "apple", "strawberry", "grapes"]
def myList = ["orange", "apple", "banana", "grapes"]
println "Fruits not on the list: ${listOffruits.minus myList}"

可能重复@Nitesh,谢谢,但我想比较/检查list-listofruits的每个值与另一个list-myList中的值。可能重复@Nitesh,谢谢,但我想比较/检查list-listofruits的每个值与另一个list-myList中的值。效果很好,谢谢你给我介绍findAll方法。谢谢非常有魅力,谢谢你给我介绍芬德尔方法。谢谢