zoukankan      html  css  js  c++  java
  • Iterator源码解读

    //继承关系
    public interface Inteator {
        boolean hasNext();
        Object next(); 
    }
    
    public interface Iterable {
        Iterator iterator();
    }
    
    public interface Collection extends Iterable {
        Iterator iterator();
    }
    
    public interface List extends Collection {
        Iterator iterator();
    }
    
    public class ArrayList implements List {
        public Iterator iterator() {
            return new Itr();
        }
        //内部类
        private class Itr implements Iterator {
            public boolean hasNext() {}
            public Object next(){} 
        }
    }
    
    
    Collection c = new ArrayList();
    c.add("hello");
    c.add("world");
    c.add("java");
    Iterator it = c.iterator();     //new Itr();这里是多态,接口不是实例化。这里返回的是实现类的对象
    while(it.hasNext()) {
        String s = (String)it.next();
        System.out.println(s);
    }

    这里通过跟进源码看了一下内部的继承关系,里面的具体实现就没有拿出来说。通过梳理出这样的继承关系可以很清楚的看出Iterator的实现原理

  • 相关阅读:
    学习进度条08
    学习进度条07
    子数组和最大值(二维)
    学习进度条06
    构建之法阅读笔记04
    四则运算网页版
    泛型代码中的默认关键字
    js 日期大小比较
    c#Reverse字符串
    c#获取数组中指定元素的索引
  • 原文地址:https://www.cnblogs.com/itboys/p/6144553.html
Copyright © 2011-2022 走看看