当 for 循环由 ArrayList 的大小控制时
(...; i < someArrayList.size(); ...)
但是循环的每次迭代都会向列表中添加一个元素,那么循环如何识别大小正在变化?我认为一旦代码被发送到编译器,它就会看到一次大小,然后执行直到达到原始大小,但显然情况并非如此。随着大小的增加,循环运行的次数也会增加。我认为不会,所以显然我不明白计算机如何读取这个。我只是想知道系统如何读取这样的内容。
另外,是否有某种方法可以使循环仅运行原始列表大小的次数(再次在每次迭代中添加元素)?假设您事先不知道大小,因此无法输入一些常数。
在每次迭代开始时,都会计算中间表达式。如果为真,则循环继续。如果为 false,则循环中断。因此它会在每次迭代时重新评估大小。
要使其循环列表原始大小的次数,请执行以下操作:
int size = someArrayList.size();
for (i = 0 ; i < size ; i++) { ... }
或者如果你想变得更奇特:
for (i = 0, size = someArrayList.size() ; i < size ; i++) { ... }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)