import java.util.Iterator; import java.util.NoSuchElementException; /* SAMME SOM LENKELISTE-KLASSEN, MEN VI PRINTER UT ALT SOM SKJER MED ITERATOREN */ class LenkelistePrint implements Iterable{ private Node start; class Node { private Node neste; private E verdi; public Node(E verdi) { this.verdi = verdi; } } @Override public Iterator iterator() { System.out.println("[Lenkeliste] iterator()"); return new LenkelisteIterator(); } protected class LenkelisteIterator implements Iterator{ Node noden = start; public boolean hasNext() { System.out.println("[Iterator] hasNext(): return " + (noden != null)); return noden != null; } public E next() { if (noden == null) { throw new NoSuchElementException("next"); } E returVerdi = noden.verdi; noden = noden.neste; System.out.println("[Iterator] next(): return " + returVerdi); return returVerdi; } } public void leggTil(E x) { Node nyNode = new Node(x); if (start == null) { start = nyNode; } else { Node noden = start; while (noden.neste != null) { noden = noden.neste; } noden.neste = nyNode; } } // Gaar gjennom listen og skriver ut hvert element public void skrivUt() { Node noden = start; while (noden != null) { System.out.println(noden.verdi); noden = noden.neste; } } }