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

  • 相关阅读:
    解决input获取焦点时底部菜单被顶上来问题
    JavaScript学习笔记
    JavaScript表单验证
    js 中{},[]中括号,大括号使用详解
    陀飞轮
    娱乐天空
    左右手
    软测 学习
    git 学习
    spring boot 学习
  • 原文地址:https://www.cnblogs.com/itboys/p/6144553.html
Copyright © 2011-2022 走看看