Iterator(迭代器)
Java Iterator(迭代器)不是一个集合,它是一种用于访问集合的方法,可用于迭代 ArrayList 和 HashSet 等集合。
Iterator 是 Java 迭代器最简单的实现,ListIterator 是 Collection API 中的接口, 它扩展了 Iterator 接口。
迭代器 it 的两个基本操作是 next 、hasNext 和 remove。
调用 it.next() 会返回迭代器的下一个元素,并且更新迭代器的状态。
调用 it.hasNext() 用于检测集合中是否还有元素。
调用 it.remove() 将迭代器返回的元素删除。
1 | import java.util.Iterator; // 引入 Iterator 类 |
1、获取一个迭代器
集合想获取一个迭代器可以使用 iterator() 方法:
1 | // 引入 ArrayList 和 Iterator 类 |
2、循环集合元素
让迭代器 it 逐个返回集合中所有元素最简单的方法是使用 while 循环:
1 | while(it.hasNext()) { |
3、删除元素
1 | //实例我们删除集合中小于 10 的元素: |
ListIterator
ListIterator是一个功能更加强大的迭代器, 它继承于Iterator接口,只能用于各种List类型的访问。可以通过调用listIterator()方法产生一个指向List开始处的ListIterator, 还可以调用listIterator(n)方法创建一个一开始就指向列表索引为n的元素处的ListIterator。
1 | //ListIterator接口定义 |
由以上定义我们可以推出ListIterator可以:
双向移动(向前/向后遍历).
产生相对于迭代器在列表中指向的当前位置的前一个和后一个元素的索引.
可以使用set()方法替换它访问过的最后一个元素.
可以使用add()方法在next()方法返回的元素之前或previous()方法返回的元素之后插入一个元素.
1 | public class ListIteratorExample { |
相关链接:https://www.runoob.com/java/java-iterator.html、https://www.cnblogs.com/xiaoxi/p/6089984.html