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()方法,为什么可以最后一步这样调用呢?
高洛峰2017-04-18 10:49:56
ArrayList
は、AbstractList
クラスから継承し、List
インターフェイスの Iterator()< をオーバーライドします。 /code>Method:
ArrayList
继承自AbstractList
类, AbstractList
类重写了List
接口的iterator()
方法:
public Iterator<E> iterator() {
return new Itr();
}
其中Itr
是AbstractList
的内部类,实现了Iterator
リーリー
Itr
は AbstractList
の内部クラスであり、Iterator
インターフェイスを実装します。 🎜天蓬老师2017-04-18 10:49:56
このイテレータは ArrayList の内部クラスである必要があります。ArrayList で見つからない場合は、コレクション クラスごとに異なるイテレータを使用する必要があります。ソース コードを確認してください。