java - For 循环 : how is changing ArrayList size interpreted?

标签 java loops arraylist

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

(...; i < someArrayList.size(); ...)

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

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

最佳答案

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

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

int size = someArrayList.size();
for (i = 0 ; i < size ; i++) { ... }

或者如果你想变得花哨:

for (i = 0, size = someArrayList.size() ; i < size ; i++) { ... }

关于java - For 循环 : how is changing ArrayList size interpreted?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39809859/

相关文章:

java - 通过 TCP java (Android)/C# 进行私钥加密

java - 如何扩展一个 java 类来扩展 Scala 中另一个类的类型参数?

ruby-on-rails - rails : An elegant way to display a message when there are no elements in database

java - 编程到接口(interface)的目的是什么?

Java 重绘仅更新我的 Canvas 的一部分

r - 变量数量不断变化的 glm 模型循环

Bash 跳过 sleep 并进入下一个循环迭代

java - 如何定义通用排序类

java - 如何遍历对象的ArrayList?

java - 在ListView中用空格填充字符串