是否增强了总是从头到尾运行?

时间:2017-06-27 14:06:46

标签: java for-loop iterator

使用Java增强的 for 循环,如果我需要处理任何特定的顺序(例如:打印出值),我已经有一段时间避免使用该结构与集合顺序相同的表格。很明显,应该是的情况,但另一方面,结构的语法似乎意味着我不应该依赖或了解它。

也许令人尴尬的是,我无法追踪任何明确表示增强型for循环的文档是按照倒数第一顺序处理的。是否存在此类文档,如果存在,我在哪里可以找到它?

2 个答案:

答案 0 :(得分:1)

  

也许令人尴尬的是,我无法追踪任何明确表示增强型for循环的文档是按照倒数第一顺序处理的。是否存在此类文档,如果存在,我在哪里可以找到它?

Java语言语法和语义的权威参考是Java Language Specification。如果您搜索的文档没有带您到那里,那么可能确实有点尴尬。 Section 14.14.2 of JLS 8涵盖了增强型for循环的语义。我在这里不引用它,但它包括两个案例:

  • for循环的迭代超过Iterable时,它获取该对象的迭代器并按迭代器的next()方法返回的顺序处理元素。 / p>

  • for循环的迭代在数组上时,它按索引顺序处理元素,从0开始。

答案 1 :(得分:0)

增强的for循环的顺序取决于要循环的Collection的Iterator。因此只要以正确的顺序返回对象,for循环就会按预期工作: https://blogs.oracle.com/corejavatechtips/using-enhanced-for-loops-with-your-classes