Реализация Java Iterator вызывает ошибки компиляции - PullRequest
0 голосов
/ 24 марта 2011

Я не уверен, как добавить код итератора в мой класс DLL

Я попробовал два подхода, но я получаю ошибки компиляции в обоих случаях:

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 + " ");
}
...

ошибка копирования: cannot find symbol Iterator = myList.iterator();

1 Ответ

5 голосов
/ 24 марта 2011

Вы можете изменить ( и ) на { и } в следующем фрагменте:

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

Несколько дополнительных указателей.

  • Я предлагаю вам не использовать необработанный тип из Iterator и вместо этого использовать Iterator<T>, если ваш список содержит элементы типа T.

  • Я предлагаю вам позволить вашему классу, у которого есть метод iterator(), реализовать интерфейс Iterable<T>. Это позволяет пользователям вашего класса использовать его для каждого цикла, например.

...