Pod*_*odo 2 java loops arraylist
当for循环由ArrayList的大小控制时
(...; i < someArrayList.size(); ...)
Run Code Online (Sandbox Code Playgroud)
但循环的每次迭代都是在列表中添加一个元素,然后循环如何识别大小正在变化?我认为一旦代码被发送到编译器,它将看到大小一次然后执行直到它达到原始大小,但显然不是这种情况.随着大小的增加,循环运行的次数也会增加.我认为它不会,所以显然我不明白计算机是如何读取它的.我只是想知道系统如何读取这样的东西.
另外,是否有某种方法可以使循环只运行原始列表大小的次数(每次迭代再次添加元素)?假设你事先不知道大小,所以你不能输入一些常数.
在每次迭代开始时,评估中间表达式.如果是,则循环继续.如果为假,则循环中断.因此,它将重新评估每次迭代的大小.
要使其循环列表原始大小的次数,请执行以下操作:
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)