可能重复:
关于并发修改异常
我在下面的代码中得到这个并发修改异常错误,因为我试图在迭代时删除元素..代码在下面..
List list=new ArrayList ();
list.add(new Emp("Saral","Trainer",34500));
list.add(new Emp("Saral","Trainer",36000));
list.add(new Emp("Saral","Trainer",33000));
list.add(new Emp("Sachin","Programmer",24000));
Run Code Online (Sandbox Code Playgroud)
而我正在检索的方式是..
System.out.println("Content of list are : ");
ListIterator itr1=list.listIterator();
while(itr1.hasNext())
{
list.add(new Emp("Anand","Manager",56000)); //
Emp e=(Emp)itr1.next();
e.display();
}
Run Code Online (Sandbox Code Playgroud)
你能告诉我这个错误是如何避免的吗?
这是不可能的修改List并使用Iterator之前被的修饰而产生List从其中List获得,否则ConcurrentModificationException将被抛出.要避免,不要list.add()在里面打电话while.
由于违规的目的while是打印列表的内容,因此没有理由使用Iterator:
List<Emp> list = new ArrayList<Emp>();
for (Emp e: list)
{
e.display();
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
50 次 |
| 最近记录: |