import java.util.Iterator; import java.util.NoSuchElementException; class Lenkeliste implements Iterable { private Node start; class Node { private Node neste; private E verdi; public Node(E verdi) { this.verdi = verdi; } } 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; } } /* NYTT DENNE UKEN: */ @Override public Iterator iterator() { return new LenkelisteIterator(); } private class LenkelisteIterator implements Iterator { // Peker som peker paa noden vi er paa. Etter next() peker vi paa neste node. Node noden = start; // Returnerer true hvis vi ikke har kommet gjennom hele listen (har noder igjen) @Override public boolean hasNext() { return noden != null; } // Returnerer verdien for noden vi peker paa, // og setter pekeren til neste node i listen @Override public E next() { if (noden == null) { // Vi har kommet gjennom hele listen, ingen node igjen throw new NoSuchElementException("next"); } E returVerdi = noden.verdi; // Peker paa neste node i listen noden = noden.neste; return returVerdi; } } }