形如for(statement1;statement2;statement3)的循环语句在执行时,每次循环前都会对statement2做计算,一旦该条件为false则除当前循环逻辑不执行外,for语句还会立即终止。
for(Clazz c: Iterator)形式的循环实质是上面循环的语法糖,编译后的代码将使用Iterator进行迭代
for(java.util.Iterator i$ = list.iterator(); i$.hasNext();) {
// do something
}
在使用迭代器循环时,Iterator对象每次执行hasNext方法前都会检查容器内的对象数是否发生了非预期的变化,如果变化则系统会抛出异常,所以不能在迭代逻辑内自行改变迭代器内对象数量,唯一可操作其中对象数量的方法是使用iterator.remove()移除对象
网友评论