1

我正在处理收藏品。困扰我的一件事是:java.util.Iterator 接口方法的实现在哪里?这些方法在哪个类中实现?

 public abstract boolean hasNext();
 public abstract E next();
 public abstract void remove();

我搜索了java API的源代码,但没有在任何类中找到这些方法的实现。

4

4 回答 4

7

Iterator 是一个接口,它在 java api 本身中有大约 50 个实现。由于迭代器需要与迭代对象类型相匹配,例如,如果你想迭代一个 ArrayList,你的 iterator() 方法返回的迭代器实例是新的 Itr 类型。请参阅 java.util.AbstractList 类中的实现,该类构成 ArrayList 的基类

于 2012-09-02T06:58:02.173 回答
1

JDK中有多个类已经实现。ArrayList 是您关注的一个很好的例子。您可以浏览 openJDK 中的代码iterator方法定义是-

  public Iterator<E> iterator() {
         return new Itr();
     }

这个Itr私有类在哪里实现Iterator<E>并定义了所有的iterator方法。

于 2012-09-02T07:17:40.973 回答
0

可以搜索实现Iterator的java api。这些类都实现了上述方法。去浏览jdk源码。这会对你有很大帮助。

于 2012-09-02T07:02:06.600 回答
0

如果您使用的是 eclipse 并且您在 eclipse 本身中配置了源代码。

只需选择方法并按 Ctrl + T(显示类型层次结构),您就可以看到所有已实现该方法的类。

于 2012-09-02T07:06:36.393 回答