我是靠谱客的博主 时尚镜子,最近开发中收集的这篇文章主要介绍Java的ArrayList数组遍历添加问题解决,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

最近,在写一个程序时,遇到了ArrayList数组一边遍历和一边添加的操作,由于习惯吧,一开始我就写成了类似于下面的这样(下面代码只是用来说明这种情况):

import java.util.ArrayList;

public class Test {

    public static void main(String[] args){
        ArrayList<String> stringArray = new ArrayList<>();
        stringArray.add("one");
        stringArray.add("two");
        stringArray.add("three");
        stringArray.add("four");
        stringArray.add("five");
        stringArray.add("six");
        stringArray.add("seven");
        stringArray.add("eight");
        stringArray.add("nine");

        /**
         * 一边遍历一边添加
         */
        for (String str : stringArray){
            System.out.println(str);
            stringArray.add("ten");
        }
    }
}

谁知道报错如下:

Exception in thread "main" java.util.ConcurrentModificationException
        at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1009)
        at java.base/java.util.ArrayList$Itr.next(ArrayList.java:963)
        at Test.main(Test.java:20)

编程久了就很快意识到肯定是边遍历边添加出错了,由于我也是刚入门Java不久,就网上搜索一番,发现很多解决的方法:
https://blog.csdn.net/Landon_Xu/article/details/53414971
参考后,我选择不改变数据类型,所以就修改为下面这样:

下面代码会造成 无限循环,代码只供问题说明参考

import java.util.ArrayList;

public class Test {

    public static void main(String[] args){
        ArrayList<String> stringArray = new ArrayList<>();
        stringArray.add("one");
        stringArray.add("two");
        stringArray.add("three");
        stringArray.add("four");
        stringArray.add("five");
        stringArray.add("six");
        stringArray.add("seven");
        stringArray.add("eight");
        stringArray.add("nine");

        /**
         * 一边遍历一边添加
         */
        for (int i = 0; i < stringArray.size(); i++){
            String str = stringArray.get(i);
            System.out.println(str);
            stringArray.add("ten");
        }
    }
}

这样问题就解决了!!

其中的缘由网上有很多解释,在这里我只记录一下这种错误的简单解决方式,作为学习 java 的积累,以后会慢慢深入学习的!!!

最后

以上就是时尚镜子为你收集整理的Java的ArrayList数组遍历添加问题解决的全部内容,希望文章能够帮你解决Java的ArrayList数组遍历添加问题解决所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部