在我的一个java项目中,一个类初始化一个Balance对象的ArrayList。 Every Balance有一个accountNum和一个getter方法getAccountNum(),它返回accountNum。 searchAccount()方法搜索accountNum并返回具有给定AccountNum的对象。这是搜索方法。 itr是ArrayList的迭代器
public Balance searchAccount(long accountNum){
Balance b = new Balance();
while(itr.hasNext()){
b = itr.next();
if(b.getAccountNum() == accountNum)
return b;
}
return null;
}
它会检查Comodification异常。我哪里错了?
答案 0 :(得分:0)
您正在迭代的列表可能在其他地方被修改,因为它不是本地的(您在其他地方声明并初始化它)。将其设为本地,将其副本传递给方法或使用CopyOnWriteArrayList
(https://docs.oracle.com/javase/7/docs/api/java/util/concurrent/CopyOnWriteArrayList.html)