Iterator上的增强集合方法

Luc*_*ano 1 groovy

是否可以使用Groovy提供的增强的Collections方法,比如findAll和Collect with iterator(类java.util.Iterator)?

ata*_*lor 6

大多数增强方法(包括findAll和collect)都与迭代器一起使用.您可以在控制台中测试它:

assert [1,2,3].iterator().findAll{ it % 2 } == [1,3]
assert [1,2,3].iterator().collect{ it * 2 } == [2,4,6]
Run Code Online (Sandbox Code Playgroud)

查看DefaultGroovyMethods以获取groovy提供的额外方法的列表.通常,只要您的类是第一个arg类型的实例,该方法就适用于您的类.在的情况下,collect和findAll,迭代器使用的Object版本.其他人,比如collectMany拥有迭代器特定版本.