2

像 hasNext()、next()、remove() 等迭代器接口方法在哪里定义?接口不定义方法,只声明在其他类中定义的方法。我们如何通过Iterator引用直接访问hasext()、next()等方法?例如:

List l = new LinkedList();
l.add(1);
l.add(2); 
Iterator iter = l.iterator();
while(iter.hasNext())
{
    Object o = iter.next();
    System.out.println(o);
}

在上面使用引用 iter(迭代器引用)的示例中,我们可以在 iter 引用中分配任何方法吗?请给我一个代码示例。直到现在我都无法理解这个概念。

4

2 回答 2

4

如果您的问题是:LinkedList 迭代器的实现在哪里,答案是:它是作为 LinkedList 类的私有内部类实现的:

private class ListItr implements ListIterator<E> {
    private Node<E> lastReturned = null;
    private Node<E> next;
    private int nextIndex;
    private int expectedModCount = modCount;

    ...
}
于 2012-07-05T18:10:46.390 回答
2

您知道您可以通过查看可以下载的 java 源代码自己找到答案,或者您可以打印出返回此处的迭代器的类。

但更一般地说,这一点是抽象的。这里的设计师专门设计的让你不用担心这些细节

于 2012-07-05T18:09:59.297 回答