2013-07-02 83 views
-1

在我的程序中,我編寫了自己的LinkedList類。還有一個例子,llist。如何實現Iterable

要在foreach循環中使用它,LinkedList需要實現Iterable?

for(Node node : llist) { 
    System.out.print(node.getData() + " "); 
} 

這裏是我的LinkedList類。請讓我知道我該如何使它成爲可迭代的?

public class LinkedList implements Iterable { 
    private Node head = null; 
    private int length = 0; 

    public LinkedList() { 
     this.head = null; 
     this.length = 0; 
    } 

    LinkedList (Node head) { 
     this.head = head; 
     this.length = 1; 
    } 

    LinkedList (LinkedList ll) { 
     this.head = ll.getHead(); 
     this.length = ll.getLength(); 
    } 

    public void appendToTail(int d) { 
     ... 
    } 

    public void appendToTail(Node node) { 
     ... 
    } 

    public void deleteOne(int d) { 
     ... 
    } 

    public void deleteAll(int d){ 
     ... 
    } 

    public void display() { 
     ... 
    } 

    public Node getHead() { 
     return head; 
    } 
    public void setHead(Node head) { 
     this.head = head; 
    } 
    public int getLength() { 
     return length; 
    } 
    public void setLength(int length) { 
     this.length = length; 
    } 

    public boolean isEmpty() { 
     if(this.length == 0) 
      return true; 
     return false; 
    } 
} 
+2

JDK是開源的,源代碼隨它而來。只要看看標準的LinkedList實現就可以得到一個例子。 –

+0

但是,首先您需要閱讀關於如何實現接口的一般主題的基本教程。你可以找到一個體面的[**這裏**](http://docs.oracle.com/javase/tutorial/java/IandI/createinterface.html)。你不會後悔這樣做。 –

回答

2

實現Iterable接口的唯一方法iterator()

您需要在此方法中返回Iterator的實例。通常這是通過創建一個實現Iterator的內部類並通過創建該內部類的實例並返回它來實現iterator來完成的。

+0

請你指定?謝謝! – Zoe

+4

您能否具體說明您希望我指定的內容? – rgettman

+0

你能否實現迭代器()? – Zoe

相關問題