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的实现原理

原文地址:https://www.cnblogs.com/itboys/p/6144553.html