A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhanglei_ 初级黑马   /  2019-4-18 18:09  /  685 人查看  /  0 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

迭代器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()方法,实现迭代的功能。

0 个回复

您需要登录后才可以回帖 登录 | 加入黑马