java - ArrayList for 循环迭代器导致无限循环

标签 java for-loop arraylist iterator

我试图迭代 ArrayList 并打印其中的每个元素,但它只输出 ArrayList 中的第一个元素。然后有一个无限循环,它不断打印出第一个元素。

ArrayList<String> startTime = new ArrayList<String>();

for (int i = 0; i < startTime.size(); i++) {
    String getTime = startTime.get(i);
    getTime = convertTime(getTime);
    startTime.add(i, getTime);
    System.out.println(startTime.get(i));
}

最佳答案

当您执行 startTime.add(i, getTime) 时,您将在 i 位置添加一个元素。这意味着在下一次迭代中,列表中将有一个额外的元素。当您增加计数器并检查 startTime.size() 时,它始终为 true。因此你的无限循环。

作为建议,如果您想添加 getTime 元素,您可能需要使用某种辅助结构,例如另一个列表。

关于java - ArrayList for 循环迭代器导致无限循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41186638/

相关文章:

javascript - angularjs 中非常慢的循环

c++ - 仅打印数组的某些元素

java.util.ArrayList<T>

java - 从数组列表中检索数据

java - java中使用Gson反序列化Json

java - 单击按钮关闭 JFrame

java - 当我输入 "done"时我的程序不会停止

java - 对象中数组列表的正确初始化?

java - 在 Java 中查看视锥体剔除盒子

java - 仅通过其唯一的实例 ID 来 equal() 类实例是不好的做法吗?