Collection c1 =new ArrayList(); c1.add("hello"); c1.add(1); Collection c2 =new ArrayList(); c2.add(new Student() ); c2.addAll(c1); c2.add("我"); Iterator it = c2.iterator();
Collection 与List 还有ArrayList都没有重写iterator()方法,为什么可以最后一步这样调用呢?
ArrayList继承自AbstractList类, AbstractList类重写了List接口的iterator()方法:
ArrayList
AbstractList
List
iterator()
public Iterator<E> iterator() { return new Itr(); }
其中Itr是AbstractList的内部类,实现了Iterator接口。
Itr
Iterator
1.4m articles
1.4m replys
5 comments
57.0k users