2011-03-24 57 views
0

我不确定如何迭代器代码添加到我的DLL类的Java迭代器实现造成编译错误

我尝试了两种方法,但我得到在这两种情况下编译错误:

public static void main(String[] args) 
{ 
    DLL myList = new DLL() ; 

... 

public java.util.Iterator iterator() 
(
    return new LRIterator() ; 
) 

private class LRIterator implements Iterator 
{ 
... 
} 
... 

编译错误:';' expected public java.util.Iterator iterator();

另一种方法:

public static void main(String[] args) 
{ 
    DLL myList = new DLL() ; 
    ... 
    Iterator itr = myList.iterator(); 
    while(itr.hasNext()) { 

    Object element = itr.next(); 
    System.out.print(element + " "); 
} 
... 

警察ILE错误:cannot find symbol Iterator = myList.iterator();

回答

6

您可能要更改()到下面的代码片段{}

public java.util.Iterator iterator() 
(
    return new LRIterator() ; 
) 

一些额外的指针。

  • 我建议你不要使用原始类型的Iterator而是使用Iterator<T>如果清单中T类型的元素。

  • 我建议你让你的课有iterator()方法实现Iterable<T>接口。这允许你的类的用户在每个循环中使用它。

+0

Deuh!我很抱歉现在提出这个问题......感谢您的额外提示! - 得到一个新的错误:LRIterator不抽象,不重写抽象方法remove()...任何想法? – raoulbia 2011-03-24 20:19:34