java ArrayList 在循环中删除元素,

发布时间 2023-08-15 10:38:17作者: 盘思动

可以在foreach中使用嘛 ---- 不行

在 Java 中,使用增强型 for-each 循环(也称为 foreach 循环)时,不能直接在循环中使用 remove 方法来移除元素。这是因为 foreach 循环遍历集合时使用的是其内部的迭代器,而调用 remove 方法会破坏迭代器的状态。

如果你想要在 foreach 循环中移除元素,可以使用迭代器的 remove 方法或使用一个临时的集合来保存需要移除的元素,然后在循环结束后统一移除这些元素。

以下是两种在 foreach 循环中移除元素的示例代码:

import java.util.ArrayList;
import java.util.Iterator;

public class Main {
    public static void main(String[] args) {
        // 创建一个包含整数的 ArrayList
        ArrayList<Integer> list = new ArrayList<>();
        list.add(1);
        list.add(2);
        list.add(3);

        // 使用迭代器遍历并移除对象
        Iterator<Integer> iterator = list.iterator();
        while (iterator.hasNext()) {
            Integer num = iterator.next();
            if (num == 2) {
                iterator.remove();
            }
        }

        // 打印移除对象后的 ArrayList
        for (Integer num : list) {
            System.out.println(num);
        }
    }
}