每个循环如何防止空列表?

我在http://www.leepoint.net/notes-java/flow/loops/foreach.html上阅读。 每个相当于

for (int i = 0; i < arr.length; i++) { type var = arr[i]; body-of-loop } 

 for (type var : arr) { body-of-loop } 

我的问题是每个循环如何为空列表工作。 我知道对于常规for循环,arr.length将仅计算为0并且循环不会执行。 每个循环怎么样?

我的问题是每个循环如何为空列表工作

ForEach也以同样的方式工作。 如果长度为零,则永远不会执行循环。

它们之间的唯一区别是当您想要迭代列表或数组的所有项时使用ForEach循环,而在正常for循环的情况下,您可以控制开始和结束索引。

它使用Iterable集合的迭代器,例如List。 Iterator的实现者有责任编写hasnext()方法,如果没有下一个项目则返回false,如果该集合为空则

是的,它是等价的。

如果列表为空,则for-each循环甚至不执行一次。