java迭代器中删除元素的实例操作详解

网友投稿 1267 2022-11-05


java迭代器中删除元素的实例操作详解

我们知道通过Iterator,可以对集合中的元素进行遍历。那么在其中遇到我们不需要的元素时,可不可以在遍历的时候顺便给删除呢?答案是当然可以。在Iterator下有一个remove函数,专门用于删除的操作。下面我们就remove进行讲解,然后对删除元素方法进行说明,最后带来实例的展示。

1.Iterator中的remove

void remove():删除迭代器刚越过的元素

从基础集合中移除这个迭代器返回的最后一个元素(可选操作)。两个线程中都删除,保证线程的同步。

2.删除元素说明

(1)迭代器遍历方式, 适用于连续内存存储方式,比如数组、 ArrayList(其实 ArrayList底层实现也是数组形式)。 缺点是只能从头开始遍历, 优点是可以边遍历边删除

(2)arraylist每次遍历的时候会去判断该集合是否被修改过,调用的方法是checkForComodification()。 如果被修改过ConcurrentModificationException异常。

(3)如何判断是否修改呢,主要是通过维护2个变量来实现,modCount记录了修改次数,expectedModCount记录期望修改次数。 通过iterator.remove()进行的删除操作,会同时修改modCount、ConcurrentModificationException; 而通过list.remove(object/index),则只会修改modCount。 这也是fast-fail机制

3.删除实例

Iterator it=list.iterator();

while(it.hasNext()){

Object e=it.next();

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

it.remove();

}

}

System.out.println(liNxHCCNKvst);

Iterator中的remove()实例代码:

import java.util.ArrayList;

import java.util.Iterator;

import java.util.List;

public class IteratorRemoveDemo {

public static void main(String[] args) {

List list = new ArrayList(5);

for (int i = 0; i < 5; i++) {

list.add(i);

}

System.out.printNxHCCNKvln(list);

// 移除最后访问的元素

iterator.next();

iterator.next();

iterator.remove();

System.out.println(list);

}

}

/*输出:

[0, 1, 2, 3, 4]

[0, 2, 3, 4]

*/


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:申通快递查询单号查询API(申通快递查询单号查询追踪哪里顺)
下一篇:汇通快递单号查询API(汇通快递单号查询客服)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~