原码:
public List findGroupsByCid(String cid) throws Exception {
List groupList = new ArrayList();
groupList = gdao.findGroupsByCid(cid);
//count account in this group's number
Iterator it = groupList.iterator();
while (it.hasNext()) {
Group group = (Group) it.next();
List aglist=new ArrayList();
aglist=agdao.findByGid(group.getGid());
Iterator it1=aglist.iterator();
while (it1.hasNext()) {
Agmapping agmapping = (Agmapping) it1.next();
Account account=adao.findByAid(agmapping.getAid());
if(null==account||null==account.getAid()||"".equals(account.getAid())){
aglist.remove(agmapping);
}
}
group.setPcount(aglist.size());
}
return groupList;
}
出现java.util.ConcurrentModificationException 异常,解决办法:
将红色区域的代码换成:it1.remove();