2012-07-05 74 views
2

Iterator接口方法像hasNext(),next(),remove()等定义在哪里?接口不定义方法,只声明在其他类中定义的方法。我们如何通过Iterator引用直接访问hasnext(),next()等方法? 例如:Iterator接口方法hasNext(),next(),remove()定义在哪里?因为接口永远不会定义方法只声明

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参考任何方法上面的例子?请给我一个代码示例。直到现在我还不能理解这个概念。

+0

编辑为拼写/语法/语法/缩进。 – Wug 2012-07-05 18:16:07

回答

2

您知道,您可以通过查看可以下载的java源代码自己找到答案,也可以打印出您在此获得的迭代器的类。

但更一般地说,这是抽象。这里的设计器是专门设计的,所以你不必担心这些细节

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; 

    ... 
} 
+0

要明确这些细节是故意隐藏的,所以您不必担心它们,以便Java实现者可以在不中断任何用户的情况下在不同的实现中进行交换。 – 2012-07-05 18:14:11

相关问题