1.什么是迭代器?
迭代器(Iterator)是一个对象,它的工作是遍历并选择序列中的对象。它提供了一种访问一个容器(container)对象中的各个元素,而又不必暴露该对象内部细节的方法。通过迭代器,开发人员不需要了解容器底层的结构,就可以实现对容器的遍历。由于创建迭代器的代价小,因此迭代器通常被称为轻量级的容器。
2.Iterator接口两个核心方法:
- ①
boolean hasNext()
:判断是否还有元素,如果仍有元素,返回true - ②
E next()
:返回迭代的下一个元素,如果没有元素可以获取,则返回NoSuchElementException
3.迭代输出Iterator【重点】
调用Collection集合子类的Iterator方法取得内置的迭代器,使用以下输出格式:
while (it.hasNext()){
System.out.println(it.next());
}
4.除了hasNext与next方法外还有:
- ③
hasPrevious()
:判断是否有上一个元素 - ④
previous
:取得上一个元素
要想使用从后向前遍历,首先至少要从前向后遍历一次才可使用。
5.Iterator和ListIterator的区别
Iterator可用来遍历Set和List集合,但是ListIterator只能用来遍历List。
Iterator对集合只能是前向遍历,ListIterator既可以前向也可以后向。
ListIterator实现了Iterator接口,并包含其他的功能,比如:增加元素,替换元素,获取前一个和后一个元素的索引,等等。