1、问题描述:在编程过程中我们可能会遇到查到一个list集合,然后需要删除某一个值,将结果返回给前端,很多人都会想到直接遍历然后调用remove()方法。
2、直接在循环里面使用remove()会报错,因为一个集合遍历的时候用了一个线程,再删除就会有问题,list的索引也会改变,因此,会报错ConcurrentModificationException 异常。
3、解决方案:
可以使用如下代码:
Iterater<String> list1 =list.iterater();
while(list1.hasNext()){
//获取到元素
String str = list1.next();
//删除元素
list1.remove();
}
这种做法不会报错,也是最标准的做法。
本人在开发过程中遇到过,记录一下,以后方便找