黑马程序员技术交流社区

标题: [成都校区]+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