黑马程序员技术交流社区

标题: ArrayList集合中迭代器的源码 [打印本页]

作者: jaunce    时间: 2015-8-29 07:37
标题: ArrayList集合中迭代器的源码
public interface Iterator
{
        public abstract boolean hasNext();
        public abstract Object next();
}


public interface Collection
{
        public abstract Iterator iterator();
}
public interface List extends Collection
{
        ...
}
public class ArrayList implements List
{
        public Iterator iterator() {
        return new Itr();
    }   
    private class Itr implements Iterator {
        public boolean hasNext() {
            return xxx;;
        }
        public E next() {
            return xxx;
        }
    }
}



用法:
        //多态
        Collection c = new ArrayList();
        //添加元素
        c.add("hello");
        c.add("world");
        c.add("java);        
        Iterator it = c.iterator(); //把Itr返回来了,而Itr实现了Iterator接口。所以,这是多态的体现。
        while(it.hasNext())
        {
                String s = it.next();
                System.out.println(s);
        }







作者: championjx    时间: 2015-8-29 11:21
list 用下标不是更简单么




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2