【发布时间】:2019-01-14 13:04:51
【问题描述】:
在关于集合的 Oracle 教程https://docs.oracle.com/javase/tutorial/collections/interfaces/collection.html 我看到以下内容:
Use Iterator instead of the for-each construct when you need to:
1. Remove the current element. The for-each construct hides the iterator, so you cannot call remove. Therefore, the for-each construct is not usable for filtering.
2. Iterate over multiple collections in parallel.
我了解迭代器支持但 for-each 构造不支持的第一个选项“删除当前元素”。 我需要澄清第二个选项“并行迭代多个集合”,这可以通过迭代器而不是 for-each 来完成。有人可以提供这种情况的例子吗?据我了解,for-each 也可以嵌套,因此可以并行处理多个集合。
这不是Iterator vs For-Each 的重复 和Iterator vs for 当他们询问迭代器和 for-each 的一般比较时,我询问了 oracle 教程中的具体句子。
【问题讨论】:
-
可能是这样的:
while(iter1.hasNext() && iter2.hasNext()){ ... }这对于增强的 for 循环是不可能的 -
“for-each 也可以嵌套,因此可以并行处理多个集合” 这不是并行迭代。这是为第一个集合的每个元素完全迭代第二个集合。并行迭代意味着同时处理两个元素中的第一个元素,然后同时处理两个元素中的第二个元素,然后是第三个元素,依此类推。如果集合的大小不同,则可能会或可能不会处理较大集合中的额外元素,这取决于循环的目的。
标签: java collections iterator