日期:2014-05-20  浏览次数:20715 次

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

------解决方案--------------------
Collection
------解决方案--------------------
不是Iterable吗?
------解决方案--------------------


public interface List <E> extends Collection <E> {
...
Iterator <E> iterator();
...
}

public class ArrayList <E> extends AbstractList <E>
implements List <E> , RandomAccess, Cloneable, java.io.Serializable

AbstractList是一个抽象基类,其中就定义了
public Iterator <E> iterator() {
return new Itr();
....

这使用了设计模式中的Iterator设计模式,并对Iterator模式进行了一定的改动,抽象出了公共的抽象基类AbstractList,并在其中实现了iterator() ,所以所有继承了 AbstractList的类都具有了该iterator方法。

楼主可以参考Iterator设计模式,以及java.util中的源代码。