问题描述
- android异常 ConcurrentModificationException()
-
要进行的操作是,遍历map.判断key值是否存在。如果存在,,则this key对应的valuez增加一个list,否则的话,就重新再添加一组键值对,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 {
Iterator>> it = maps.entrySet().iterator();
while (it.hasNext()) {
Entry> next = it.next();
String key = next.getKey();
if (carInfoLists.get(i).getModleName().equals(key)) {
CarModle carModle = carInfoLists.get(i);
maps.get(key).add(carModle);
} else {
lists.clear();
lists.add(carInfoLists.get(i));
maps.put(carInfoLists.get(i).getModleName(), lists);
}}
解决方案
谢谢给位,自己已解决
解决方案二:
在遍历maps的时候,又操作maps.put了
lists.clear();
lists.add(carInfoLists.get(i));
maps.put(carInfoLists.get(i).getModleName(), lists);//在遍历内部在put是有问题的。
解决方案三:
遍历的时候不能动态加入的,,
解决方案四:
for (int i = 0; i < carInfoLists.size(); i++) {
if (maps == null) {
maps = new HashMap>();
}
if(maps.get(carInfoLists.get(i).getModleName())==null){
maps.put(carInfoLists.get(i).getModleName(), new ArrayList());
}
List lists = (ArrayList)maps.get(carInfoLists.get(i).getModleName());
lists.add(carInfoLists.get(i));
}
解决方案五:
http://blog.sina.com.cn/s/blog_465bcfba01000ds7.html