java exception 01

时间:2022-01-24 04:02:54

问题:java.util.concurrentmodificationexception

背景:java thread

网上找到的出现的例子如下(项目中真实的code不便给出)

public class Test()
   {
private ArrayList<A> abc = new ArrayList<A>(); public void doStuff()
{
for (A a : abc)
a.doSomething();
} public void removeA(A a)
{
abc.remove(a);
  }
}

a.doSomething might call Test.removeA();

转载自 *

首先说明错误的意思:

concurrent 同时发生  modification 修改

在迭代的同时,list被其他线程或程序修改了。

解决的方法:

有几种,可以在网上查找,我选择的是 将list复制,迭代复制后的新的list

 private ArrayList<A> abc = new ArrayList<A>();
ArrayList<A> tempList = new ArrayList<A>(abc);
 public void doStuff()
{
for (A a : tempList)
a.doSomething();
} 这样问题便可解决,欢迎拍砖! 解决问题的时候建议多查google,国内上google要用VPN*,此外登录美国google的时候,网址如下:www.google.com/ncr 要加上/ncr no country redirect