Iterator vs For-Each

时间:2015-03-18 16:38:56

标签: java loops foreach iterator

我知道SO上有很多类似的问题。但似乎以前没有讨论过这个问题。

一般来说,我想知道,为什么Iterator应该用于For-Each循环,如果没有元素被删除?所以,基本上只是迭代Collection,唯一使用的修饰符是add

我知道如果从Iterator删除了某个元素,则Collection是唯一的保存选项。 性能不是参数,因为For-Each将由编译器转换为迭代器。 Iterator更详细,因此+1到For-Each

在描述的场景中,是否有可靠的点使用Iterator而不是For-Each?

1 个答案:

答案 0 :(得分:1)

如果

,您需要使用Iterator循环而不是foreach循环
  • 您需要能够在处理过程中删除项目,或者
  • 您需要以不同于其他项目的方式处理最后一项。

此外,如果您希望能够根据其前一个元素的特征跳过元素,Iterator可能更自然。

此外,对于List s,ListIterator循环有时可能比foreach循环更方便,因为它可以提供前一个和下一个元素的索引,并且(甚至与索引不同) )允许您识别迭代的第一个元素。此外,您需要ListIterator if

  • 您必须替换基础List,或
  • 中的元素
  • 你需要备份。