一、Collection 接口的iterator()方法返回一个 Iterator。Iterator接口方法能以迭代方式逐个访问集合中各个元素,并安全的从Collection 中除去适当的元素。
(1) boolean hasNext():
判断是否存在另一个可访问的元素
Object next():
返回要访问的下一个元素。如果到达集合结尾则抛出NoSuchElementException异常
(2) void remove():
删除上次访问返回的对象。本方法必须紧跟在一个元素的访问后执行。如果上次访问后合已被修改,方法将抛出IllegalStateException。
二、快速失败
“Iterator中删除操作对底层Collection也有影响。”迭代器是 故障快速修复(fail-fast)的。这意味着,当另一个线程修改底层集合的时候,如果您正在用 Iterator 遍历集合,那么,Iterator就会抛出 ConcurrentModificationException (另一种 RuntimeException异常)异常并立刻失败
三、与枚举的区别
对 collection 进行迭代的迭代器。迭代器取代了 Java Collections Framework 中的 Enumeration。迭代器与枚举有两点不同:
- 迭代器允许调用者利用定义良好的语义在迭代期间从迭代器所指向的 collection 移除元素。
- 方法名称得到了改进。
四、异常
remove
void remove()
从迭代器指向的 collection 中移除迭代器返回的最后一个元素(可选操作)。每次调用 next 只能调用一次此方法。如果进行迭代时用调用此方法之外的其他方式修改了该迭代器所指向的 collection,则迭代器的行为是不确定的。
抛出:
UnsupportedOperationException
- 如果迭代器不支持 remove 操作。
IllegalStateException
- 如果尚未调用 next 方法,或者在上一次调用 next 方法之后已经调用了 remove 方法。
分享到:
相关推荐
fail-fast 机制是java集合(Collection)中的一种错误机制。当多个线程对同一个集合的内容进行操作时,就可能会产生fail-fast事件。例如:当某一个线程A通过iterator去遍历某集合的过程中,若该集合的内容被其他线程所...
文章目录简介Fail-fast IteratorFail-fast 的原理Fail-safe Iterator总结 fail-safe fail-fast知多少 简介 我们在使用集合类的时候,通常会需要去遍历集合中的元素,并在遍历中对其中的元素进行处理。这时候我们就要...
java中Iterator迭代器讲解,基础数据对象。
该文档是演示迭代器Iterator的使用方法和源代码,其中包括了Iterator的继承类的讲解和再Iterator中的两种方法
java Iterator迭代器的使用 java Iterator迭代器的使用 java Iterator迭代器的使用
java-util-iterator.pdfjava-util-iterator.pdfjava-util-iterator.pdf
一个Iterator的实例1---马克-to-win java视频迭代器的详细描述
C#面向对象设计模式 (行为型模式) Iterator 迭代器模式 视频讲座下载
vector容器与iterator迭代器,有两者的区别和联系,供大家学习理解
一个Iterator的实例2---马克-to-win java视频的详细描述
Iterator与fast-fail机制
这个是利用iterator迭代器来对hashMap进行迭代元素,数据java基础的内容。有兴趣的朋友可以看看。
c++ 的array源码分析和reverse-iterator和-Array-const-iterator类
仿std&&list;的iterator迭代器,有助于加深对stl中各种封装类的理解
面向对象方法(STL_analysis)of_Iterator迭代器,这个文档对这进行了详细介绍,供参考!
Iterator 迭代器
计算机后端-Java-Java核心基础-第24章 集合01 11. Iterator迭代器remove()的使用.avi
除了使用下标来访问 vector 对象的元素外,标准库还提供了另一种访问元素的方法:使用迭代器(iterator)。迭代器是一种检查容器内元素并遍历元素的数据类型。 标准库为每一种标准容器(包括vector)定义了一种迭代...