![]() |
1
15
我可能会做一个叫做
这是另一个非常糟糕的情况,我们还没有lambda和方法引用。在Java 8中,给定方法引用,您将能够编写类似的内容。
|
![]() |
2
26
为什么增强的for循环不接受迭代器?我想从各种答案中收集一些潜在的原因,来解释为什么for each循环不简单地接受迭代器。
|
![]() |
3
9
而不是创建一个
如果你已经
只有
得到一个迭代器并希望保持这种状态,您必须编写一个
|
![]() |
4
4
番石榴用户可以做到
这也在 Idea Graveyard :
|
![]() |
5
3
然后
因此,对于每种情况,您都需要一个特殊的适配器。我认为理论上不可能做你想做的事情,因为这个工具必须知道迭代器返回的方法存在,这样它才能调用它们。
至于你的另外一个问题,我认为是因为for-each循环实际上是为了缩短通用场景的时间。调用一个额外的方法会使语法更加冗长。它本可以同时支持
|
![]() |
6
3
这个 惯用的 Java 8的方式(作为一种冗长的语言)是这样的:
即包装
当然,你可以一直使用
|
![]() |
7
1
当然,Guava有一个针对逆向不可迭代场景的解决方案,但不幸的是,您需要两个步骤。
Iterables.reverse()
采取了
输出:
|
![]() |
8
0
我建议使用工厂方法创建一个助手类,您可以这样使用:
作为下一步,返回类型
或者也许
你也应该看看 op4j 它通过一个非常好的API解决了许多这些问题。 |
![]() |
9
0
Apache Commons Collections API具有一个名为
|