集合并发修改异常-增强for循环,或者迭代器遍历的时候不可修改值

Posted kevin.li

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了集合并发修改异常-增强for循环,或者迭代器遍历的时候不可修改值相关的知识,希望对你有一定的参考价值。

直接上代码:

无意间发现的:
//这个方法本身是为后面的集合去掉前面集合的重复数据
一直报错,并发修改异常,仔细看mainList正在迭代循环,然后我进行了remove操作,这个时候就会报这个错.
故:总结出了标题的结论
public static List<GcallModel> distinctList(List<GcallModel> list, List<GcallModel> mainList){ for (GcallModel obj : mainList) { boolean b = false; for (GcallModel o : list) { if(o.equals(obj)){ b = true; break; } } if(b){ mainList.remove(obj); } } return mainList; }

  

以上是关于集合并发修改异常-增强for循环,或者迭代器遍历的时候不可修改值的主要内容,如果未能解决你的问题,请参考以下文章

for循环增强for循环和迭代器的区别

迭代器和增强for

集合常用的3种遍历方式

集合遍历

Java学习之集合框架的迭代器--Iteratorjk及ListItertor接口

Java集合框架顶层接口collectiion接口