Groovy 迭代器上的增强集合方法

Groovy 迭代器上的增强集合方法,groovy,Groovy,是否可以使用Groovy提供的增强的集合方法,如findAll和Collect与迭代器(java.util.iterator类)?大多数增强方法(包括findAll和Collect)都与迭代器一起工作。您可以在控制台中进行测试: assert [1,2,3].iterator().findAll{ it % 2 } == [1,3] assert [1,2,3].iterator().collect{ it * 2 } == [2,4,6] 查看groovy提供的额外方法列表。通常,只要您的类

是否可以使用Groovy提供的增强的集合方法,如findAllCollect与迭代器(java.util.iterator类)?

大多数增强方法(包括
findAll
Collect
)都与迭代器一起工作。您可以在控制台中进行测试:

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

查看groovy提供的额外方法列表。通常,只要您的类是第一个参数类型的实例,该方法就会应用于您的类。在
collect
findAll
的情况下,迭代器使用
对象
版本。其他方法,如
collect许多
都有特定于迭代器的版本。

大多数增强方法(包括
findAll
collect
)都与迭代器一起工作。您可以在控制台中进行测试:

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

查看groovy提供的额外方法列表。通常,只要您的类是第一个参数类型的实例,该方法就会应用于您的类。在
collect
findAll
的情况下,迭代器使用
对象
版本。其他方法,如
collectMany
有一个特定于迭代器的版本。

您可以进一步说明您正在尝试做什么吗?我有一个Java方法,它返回项目迭代器,我使用findAll进行筛选,collect处理这些项目,但它似乎不起作用。然后我意识到我是在迭代器对象而不是集合上操作的。因此,我所做的是将迭代器转换为一个集合,其中包含来自ApacheCommons集合的实用程序类。但我觉得很奇怪,它不支持迭代器,所以我问这个问题,因为我可能没有正确地使用它们。你能进一步说明你想做什么吗?我有一个Java方法,它返回一个项目迭代器,我使用findAll进行筛选,使用collect处理这些项目,但它似乎不起作用。然后我意识到我是在迭代器对象而不是集合上操作的。因此,我所做的是将迭代器转换为一个集合,其中包含来自ApacheCommons集合的实用程序类。但我觉得很奇怪,它不支持迭代器,所以我问这个问题,因为我可能没有以正确的方式使用迭代器。