for循环:如何解释更改ArrayList大小?

Pod*_*odo 2 java loops arraylist

当for循环由ArrayList的大小控制时

(...; i < someArrayList.size(); ...)
Run Code Online (Sandbox Code Playgroud)

但循环的每次迭代都是在列表中添加一个元素,然后循环如何识别大小正在变化?我认为一旦代码被发送到编译器,它将看到大小一次然后执行直到它达到原始大小,但显然不是这种情况.随着大小的增加,循环运行的次数也会增加.我认为它不会,所以显然我不明白计算机是如何读取它的.我只是想知道系统如何读取这样的东西.

另外,是否有某种方法可以使循环只运行原始列表大小的次数(每次迭代再次添加元素)?假设你事先不知道大小,所以你不能输入一些常数.

tsc*_*wab 7

在每次迭代开始时,评估中间表达式.如果是,则循环继续.如果为假,则循环中断.因此,它将重新评估每次迭代的大小.

要使其循环列表原始大小的次数,请执行以下操作:

int size = someArrayList.size();
for (i = 0 ; i < size ; i++) { ... }
Run Code Online (Sandbox Code Playgroud)

或者,如果你想得到幻想:

for (i = 0, size = someArrayList.size() ; i < size ; i++) { ... }
Run Code Online (Sandbox Code Playgroud)

  • 您可能还希望将循环声明为`for(int i = 0,size = list.size(); i <size; i ++)`其中`size`在循环头中声明. (3认同)