2014-02-24 138 views
-1

我想拉節點出雙向鏈表,並想通過它迭代的最佳方式,我做了一個增強的for循環,它抱怨 「for-每個不適用於所需的表達式類型:數組或java.lang.iterable found:doublylinkedlist「通過雙向鏈表進行迭代?

那麼我該如何去拉出這個列表中的節點呢?

這裏是我的代碼:

public static void gainLoss(){ 
     //variables 
     int sellPrice; 
     DoublyLinkedList list = new DoublyLinkedList();  

     //traverse through the list 
     for (Node n : list) { 

     } 
} 
+0

是DoublyLinkedList您的自定義數據結構? – Kakarot

+0

添加您的DoublyLinkedList類的源代碼 – abraabra

+0

'DoublyLinkedList'既不是來自Java的集合類,也不是來自事實上的第三方庫的東西。我們如何設想知道那是什麼,並能夠猜測問題? –

回答

0

如果你想用for-each循環使用你的數據結構,你必須實現接口Iterable(並實現一個基本的迭代器)。

0

如果DoublyLinkedList類是從Algorithms, 4th Edition比:

DoublyLinkedList<DoublyLinkedList.Node> list = new DoublyLinkedList<DoublyLinkedList.Node>(); 
    for(DoublyLinkedList.Node node : list) { 
     // do whatever you want    
    } 
+0

這不是因爲OP的編譯器消息說它們不是可迭代的。 – Radiodef

+0

DoublyLinkedList implements Iterable - 請參閱我的答案中的鏈接 –