第一步:打开API,查看ArrayList类的方法,发现没有iterator()方法,再看发现有从 java.util.AbstractList 继承的方法 equals, hashCode, iterator, listIterator, listIterator, subList 。那就代表ArrayList可以直接使用其中的iterator()方法了。
第二步:查看 抽象类AbstractList,发现其中有这样的一个方法:public Iterator<E> iterator() ,可能你会有疑问,为啥返回值是接口Iterator. 原因是返回值可以是子父类,体现的是多态的思想。查看源码发现返回值是Itr类的对象(Itr实现了Iterator接口),而Itr类拥有hasNext()和next()方法。
我想这样的解释你一定可以看懂了吧。
|