Java ArrayList 在迭代过程中如何修改元素

发布时间:2025-01-21 14:22:28 作者:小樊
来源:亿速云 阅读:92

在 Java 中,使用 ArrayList 进行迭代时,直接修改列表中的元素可能会导致 ConcurrentModificationException 异常。为了避免这个问题,您可以采用以下两种方法之一来修改元素:

方法一:使用迭代器的 set() 方法

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

public class Main {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");

        Iterator<String> iterator = list.iterator();
        while (iterator.hasNext()) {
            String element = iterator.next();
            if (element.equals("B")) {
                iterator.set("X");
            }
        }

        System.out.println(list);
    }
}

方法二:使用 Java 8 的 Stream API

import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

public class Main {
    public static void main(String[] args) {
        ArrayList<String> list = new ArrayList<>();
        list.add("A");
        list.add("B");
        list.add("C");

        list = list.stream()
                .map(element -> element.equals("B") ? "X" : element)
                .collect(Collectors.toCollection(ArrayList::new));

        System.out.println(list);
    }
}

在这两个示例中,我们分别使用迭代器的 set() 方法和 Java 8 的 Stream API 来修改 ArrayList 中的元素。这样,您就可以在迭代过程中安全地修改列表中的元素,而不会引发异常。

推荐阅读:
  1. java中fail-fast示例
  2. Java如何遍历集合并把其中的某些元素删除

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

java

上一篇:断言与条件判断的区别

下一篇:如何解决JVM中的死锁问题

相关阅读

您好,登录后才能下订单哦!

密码登录
登录注册
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》