美文网首页
容器遍历时删除元素

容器遍历时删除元素

作者: CanZh | 来源:发表于2019-05-03 21:50 被阅读0次

在Java中,对于容器的遍历有for循环和爹代器两种方法,其中,for循环有包括了传统的for循环和for each方法。迭代器主要用Uterator(另外还有ListIterator ,双向迭代器;Enumeration,相当于Iterator。现已取代)

具体使用方法(以包含Integer元素的 List为例):

传统for:

     for(int i=0;i<list.size();i++){

                ...

        }

for each:

    for(Integer item:list){

        ...

    }

迭代器:

     Iterator item = list.iterator();

        while(  item.hasNext()){

            Integer dat = intem.next();

            ...

        }

在以上三种迭代方法中,如果要一边遍历,一边删除元素,则必须用迭代器方式。若果使用for each删除,则会触发`ConcurrentModificationException`错误:

    for (Object e : list) {

                System.out.println(e);

                if("b".equals(e)){

                    list.remove(e);//操作集合的删除方法

                }

            }

    运行结果:

    a

    b

    Exception in thread "main" java.util.ConcurrentModificationException

    修改

    Iterator it=list.iterator();

            while(it.hasNext()){

                Object e=it.next();

                if("b".equals(e)){

                    it.remove();

                }

            }

            System.out.println(list);

**不能使用集合类的remove方法,而是要使用Iterator的remove方法**

相关文章

  • 容器遍历时删除元素

    在Java中,对于容器的遍历有for循环和爹代器两种方法,其中,for循环有包括了传统的for循环和for eac...

  • Java删除List中的元素

    for循环遍历删除 使用for遍历删除的问题在于删除某元素后,List的大小变化了,会导致遍历时漏掉某些元素,例如...

  • js 数组遍历时删除元素

    参考js在循环遍历数组中删除指定元素踩坑( foreach.. for.. for..in.. )[https:/...

  • 第9章 顺序容器

    三、 顺序容器操作 删除元素image.png 容器操作可能使迭代器失效 添加元素vector/string:若存...

  • 数据结构与算法(栈与队列)

    栈 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器...

  • 栈与队列

    栈 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器...

  • 算法05-栈和队列

    栈(stack) 有些地方称为堆栈,是一种容器,可以存入数据元素,访问元素,删除元素,它的特点在于只能允许容器的一...

  • C++ STL 之 vectot(四)

    今天我们继续更新 C++ STL 中 vector 容器的使用 vector 容器删除元素 使用 clear() ...

  • 栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一...

  • 栈(四)

    栈(stack),有些地方称为堆栈,是一种容器,可存入数据元素、访问元素、删除元素,它的特点在于只能允许在容器的一...

网友评论

      本文标题:容器遍历时删除元素

      本文链接:https://www.haomeiwen.com/subject/nhttoqtx.html