有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java ArrayList/forloop

我的问题很简单:listeBalles是一个ArrayList<Balle>,下面是我的代码:

for (Balle b : listeBalles) {

        b.changeList(listeBalles);        
}

问题是,方法b.changeList向ArrayList listeBalles添加了一个Balle。我认为这就是问题所在。以下是例外情况:

Exception in thread "main" java.util.ConcurrentModificationException

at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)

at java.util.AbstractList$Itr.next(AbstractList.java:343)

at Main.main(Main.java:31)

所指的线是for (Balle b : listeBalles) {线

谢谢你的帮助


共 (2) 个答案

  1. # 1 楼答案

    由于无法将元素添加到当前迭代的ArrayList,请先复制该列表

    例如,尝试:

    for (Balle b : new ArrayList(listeBalles)) {
            b.changeList(listeBalles);         
    }
    
  2. # 2 楼答案

    在for-each循环中对集合或数组进行迭代时,不能修改其内容。你到底想做什么