考虑一个简单的 java for 循环:
for (int x = 0; x < bigArray.size(); x++ ) {
Someobject object = (Someobject) bigArray.get(x);
process(object);
}
private void process(Someobject object) {
Someobject newobject = moreProcessing(object);
bigArray.add(newobject);
}
我的观察是,即使我在 bigArray 的末尾添加其他对象并且 bigArray 不断变大,for 循环也会终止。这是因为 JRE 在 for 循环开始之前修复了测试条件的值(在本例中为 x < bigArray.size())并且从不更新此值吗?