黑马程序员技术交流社区

标题: 求解,为什么会报并发修改异常 [打印本页]

作者: Master_Yu    时间: 2016-4-23 21:30
标题: 求解,为什么会报并发修改异常
ArrayList al = new ArrayList();
  al.add(“a”);
  al.add(“b”);
  al.add(“c”);
  Iterator it = al.iterator();
  while(it.hasNext()){
String s = (String)it.next();
if(s.equals(“c”)){
al.add(“c1”);
}
}
System.out.println(al);

作者: yunmu    时间: 2016-4-23 21:39
因为你迭代的时候,用集合的方法修改,并没有告知迭代器,所以会报并发修改异常。可以用迭代器中的方法
作者: xzy645181797    时间: 2016-4-23 21:44
用迭代器遍历的同时用集合的方法添加或修改元素就会出现这个问题 主要就是不能把集合的方法用到迭代器里面
你这个ArrayList 可以用List集合特有的迭代功能 ListIterator 里面有add功能
作者: MasterLHH    时间: 2016-4-23 21:45
迭代过程中不支持集合自身发生改变




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2