arraylist al=new arrayList();
iterator it=al.iterator();
it.hasNext();
arraylist()中的继承的哪个类实现了iterator接口?

解决方案 »

  1.   

    多谢楼上。因为这个方法在Collection中列了出来,所以我一直以为是Collection提供的方法。
      

  2.   

    public interface List<E> extends Collection<E>{
    ...
       Iterator<E> iterator();
    ...
    }public class ArrayList<E> extends AbstractList<E>
            implements List<E>, RandomAccess, Cloneable, java.io.SerializableAbstractList是一个抽象基类,其中就定义了
    public Iterator<E> iterator() {
    return new Itr();
    ....这使用了设计模式中的Iterator设计模式,并对Iterator模式进行了一定的改动,抽象出了公共的抽象基类AbstractList,并在其中实现了iterator() ,所以所有继承了 AbstractList的类都具有了该iterator方法。楼主可以参考Iterator设计模式,以及java.util中的源代码。