2012-07-05 72 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

相關問題