xiaoasha 2010-11-02 10:15
浏览 292
已采纳

java.util.ConcurrentModificationException 已经百度过,折腾很久还是没想出来!!

[size=medium][color=darkred]代码很简单 ,其实就是想测试一下iterator 的用法,而且我在用iterator遍历的时候也没有修改原来集合中的内容。

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
public class TestList {

/**
 * @param args
 */
public static void main(String[] args) {
    // TODO Auto-generated method stub
    List<String> l = new ArrayList<String>();
    Iterator it = l.iterator();
    String s = "abc";       

    for(int i=0;i<10;i++){
        s+=i;           
        l.add( s);          
    }
    System.out.println(l);      

    while(it.hasNext()){
        System.out.println("aa");           
        it.next();
    }   

}

}[/color][/size]

运行结果:
[color=red]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 TestList.main(TestList.java:34)[/color]

[abc0, abc01, abc012, abc0123, abc01234, abc012345, abc0123456, abc01234567, abc012345678, abc0123456789]
aa

  • 写回答

3条回答 默认 最新

  • limengchengg 2010-11-02 10:32
    关注

    补充之前的回答:
    原因说明:
    javadoc中写到:
    如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指向的集合,则迭代器的行为是不明确的。

    你的代码中 用for循环修改了迭代器所指向的集合
    所以迭代器的行为是不明确的。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥15 有偿求码,CNN+LSTM实现单通道脑电信号EEG的睡眠分期评估
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)
  • ¥20 matlab yalmip kkt 双层优化问题
  • ¥15 如何在3D高斯飞溅的渲染的场景中获得一个可控的旋转物体
  • ¥88 实在没有想法,需要个思路