2013-07-02 62 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

相关问题