2015-12-22 26 views
2

我有一個正常的Groovy 2.4.3的方法,我想我可以賺使用collect()閉合更巧妙,但不完全知道如何:改進的Groovy列表迭代與收集閉合

List<Buzz> deriveBuzzesFromFizz(Fizz fizz) { 
    List<Buzz> buzzes = [] 
    fizz.foobars?.each { 
     if(it.label.equals('whistlefeather')) { 
      buzzes << it 
     } 
    } 

    buzzes 
} 

也許東西如:

List<Buzz> buzz = fizz.foobars?.collect { 
    it.label.equals('whistlefeather') 
} 

......或大約?!

回答

4

你在想的的findAll

fizz.foobars?.findAll { 
    it.label == 'whistlefeather' 
} 
+0

感謝@tim_yates(+1) - 有啥findAll'和'collect'(或'之間的差別相反,他們在哪裏文件 - 我不能找到任何官方的Groovy文檔!?)?再次感謝! – smeeb

+2

@smeeb,你可以看到groovy集合的javadoc:http://docs.groovy-lang.org/latest/html/groovy-jdk/java/util/Collection.html – jalopaba