黑马程序员技术交流社区
标题:
[成都校区]+Iterator迭代器的实现
[打印本页]
作者:
zhanglei_
时间:
2019-4-18 18:09
标题:
[成都校区]+Iterator迭代器的实现
迭代器Iterator 通过调用集合对象的iterator()方法来实现,下面以ArrayList类为例介绍其具体实现原理:
在JDK1.5之后,单列集合的统一父类Collection继承了Iterable接口, Iterable{}接口和Collection{}接口都有抽象iterator()方法。
Collection的实现类如ArrayList、LinkedList等都重写了Iterable接口中的iterator方法。
Iterator it = (new ArrayList()).iterator(); // 这里利用了多态,iterator()方法返回的是Iterator接口的实现类对象
ArrayList类中的iterator()源码如下:
* public Iterator<E> iterator() {
* return new Itr();
* 返回一个Iterator接口的实现类对象
Itr作为Iterator的实现类,其源码如下:
* private class Itr implements Iterator<E>{
* 1. 构造方法
* Itr()
* 2. hasNext方法
* public boolean hasNext(){}
* 3. next方法
* public E next() {}
* 4. romove方法
* public void remove()
通过返回的Itr对象,来调用其hasnext()和next()方法,实现迭代的功能。
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2