2 baidu 19694879 baidu_19694879 于 2016.03.23 13:51 提问

android异常 ConcurrentModificationException();

在对map集合遍历key,并且判断key值是否存在,然后添加对应的value时,put了两次key之后,到第三次再判断时候抛出异常 throw new ConcurrentModificationException();,,

这是主要代码

private Map> modleLists() {
List lists = new ArrayList();
Map> maps = null;
for (int i = 0; i < carInfoLists.size(); i++) {
if (maps == null) {
maps = new HashMap>();
lists.add((carInfoLists.get(i)));
maps.put(carInfoLists.get(i).getModleName(), lists);
} else {
for (String key : maps.keySet()) {
if (key.contains(carInfoLists.get(i).getModleName())) {
CarModle carModle = carInfoLists.get(i);
maps.get(key).add(carModle);
break;
} else {
lists.clear();
lists.add(carInfoLists.get(i));
maps.put(carInfoLists.get(i).getModleName(), lists);
}
}

        }
    }

3个回答

baidu_19694879
baidu_19694879   2016.04.19 17:11
已采纳

谢谢各位,自己已解决,,,,,,,

bdmh
bdmh   Ds   Rxr 2016.03.23 14:10

在迭代maps时,不要对maps再进行操作

baidu_19694879
baidu_19694879 请问应该怎么解决呢
一年多之前 回复
sl_18500
sl_18500   2016.03.23 14:55

迭代到最后,需要removeall

baidu_19694879
baidu_19694879 我要进行的不是remove操作,而是遍历key,如果key存在,怎他的value增加,否则就添加一组新的键值对
一年多之前 回复
lxk_1993
lxk_1993   Rxr 2016.03.23 18:31
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!