Rumah > Soal Jawab > teks badan
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
mewarisi daripada kelas AbstractList
dan kelas AbstractList
mengatasi kaedah List
antara muka iterator()
:
public Iterator<E> iterator() {
return new Itr();
}
di mana Itr
ialah kelas dalaman AbstractList
dan melaksanakan antara muka Iterator
.
天蓬老师2017-04-18 10:49:56
Iterator ini sepatutnya menjadi kelas dalaman ArrayList Jika ia tidak ditemui dalam ArrayList, ia sepatutnya berada dalam kelas asasnya untuk kelas koleksi yang berbeza.