如何使用java迭代器对元素进行删除

这期内容当中小编将会给大家带来有关如何使用java迭代器对元素进行删除,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。

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(list);

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.println(list);
		// 移除最后访问的元素
		iterator.next();
		iterator.next();
		iterator.remove();
		System.out.println(list);
	}
}
/*输出:
[0, 1, 2, 3, 4]
[0, 2, 3, 4]
*/

上述就是小编为大家分享的如何使用java迭代器对元素进行删除了,如果刚好有类似的疑惑,不妨参照上述分析进行理解。如果想知道更多相关知识,欢迎关注行业资讯频道。