Java_遍历集合过程中删除集合元素报错的解决方案

来源:互联网 发布:黑色星期五 知乎 编辑:程序博客网 时间:2024/06/12 00:18

问题描述:使用增强for循环遍历集合,如果遍历过程中去除第一个或者最后一个元素会报错,去除中间的元素不会报错:Exception in thread “main” java.util.ConcurrentModificationException

不知道这个是怎么回事,好像和指针有关吧(暂时不了解),为了避免此类问题的出现,可以使用迭代器或者

普通for循环来解决。

1.使用迭代器

代码举例:

public static void removeElement(List<Integer> list) {    Iterator<Integer> it = list.iterator();    while(it.hasNext()) {        Integer id = it.next();        if (id == 2) {            it.remove();        }    }}

2.使用普通for循环,如果删除需要i–

public static void removeElement(List list) {

int len = list.size();for(int i = 0; i < len; i++) {    if(list.get(i) == 2) {        list.remove(i);        i--;    }}

}

0 0
原创粉丝点击