Итератор печати LinkedList - PullRequest
       16

Итератор печати LinkedList

0 голосов
/ 28 октября 2018

У меня проблема с отображением моего LinkedList с помощью foreach.

Когда я хочу отобразить свой LikedList, в моем списке появляется ошибка, которая говорит мне, что я должен использовать итератор.Вот код:

public class Set {

private LinkedList <Integer> elements;

public Set () {
    this.elements = new LinkedList <Integer> ();
}

public static void main (String [] args) {
    Set test = new Set ();
    test.add (8);
    test.add (2);
    test.add (7);
    for (int e: test) {

    }
}

Итак, я использовал итератор для отображения, но в сообщении говорится, что мой итератор не определен для набора методов.

Вот код:

public class Set {

private LinkedList <Integer> elements;

public Set () {
    this.elements = new LinkedList <Integer> ();
}

public static void main (String [] args) {
    Set test = new Set ();
    test.add (8);
    test.add (2);
    test.add (7);
    Iterator <Integer> iterator = test.iterator ();
    while (iterator.hasNext ()) {
        System.out.println (iterator.next ());
    }
}

Если вы можете помочь мне с этим, это очень мне поможет.

(Я попытался определить «Iterator <Integer> iterator = this.elements.iterator ();» в общедоступной Set () и вызвать его в рукетаким образом, но безуспешно "while (iterator.hasNext ()) { System.out.println (iterator.next ()); }")

Заранее спасибо, хороший день

Ответы [ 2 ]

0 голосов
/ 28 октября 2018

Ваш класс Set должен реализовать итеративный интерфейс как

public class Set implements Iterable<Integer> {

  private LinkedList<Integer> elements;

  public Set() {
    this.elements = new LinkedList<Integer>();
  }

  @Override
  public Iterator<Integer> iterator() {
    return elements.iterator();
  }
}
0 голосов
/ 28 октября 2018

Ваш класс Set не определяет итератор, вы должны добавить, например, такой метод:

public Iterator<Integer> getIterator() {
     return elements.iterator();
}
...