java ArrayList 在循环中删除元素,

可以在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);
        }
    }
}

posted @   盘思动  阅读(128)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 【杭电多校比赛记录】2025“钉耙编程”中国大学生算法设计春季联赛(1)
点击右上角即可分享
微信分享提示