import java.util.Iterator; public class Linje implements Iterable { private Stopp start; public Linje(String navn) { start = new Stopp(navn); } public void leggTilStopp(String navn) { Stopp sisteStopp = start; while (sisteStopp.nesteStopp != null) { sisteStopp = sisteStopp.nesteStopp; } Stopp nyttStopp = new Stopp(navn); sisteStopp.nesteStopp = nyttStopp; } class Stopp { private String navn; private Stopp nesteStopp; public Stopp(String navn) { this.navn = navn; } @Override public String toString() { return navn; } } @Override public Iterator iterator() // eller Iterator { return new Linjeiterator(); } class Linjeiterator implements Iterator // eller Iterator { private Stopp nesteStopp = start; @Override public boolean hasNext() { return nesteStopp != null; } @Override public Stopp next() { Stopp stopp = nesteStopp; nesteStopp = nesteStopp.nesteStopp; return stopp; } } public static void main(String[] args) { Linje linje1 = new Linje("Frognerseteren"); String[] stopp = {"Voksenkollen", "Lillevann", "Skogen", "Voksenlia", "Holmenkollen", "Besserud", "Midtstuen", "Skådalen", "Vettakollen", "Gulleråsen", "Gråkammen", "Slemdal", "Ris", "Gaustad", "Vinderen", "Steinerud", "Frøen", "Majorstuen", "Nationaltheatret", "Stortinget", "Jernbanetorget", "Grønland", "Tøyen", "Ensjø", "Helsfyr"}; for (String s : stopp) { linje1.leggTilStopp(s); } System.out.println("Linje 1 fra Frognerseteren til Helsfyr består av stoppene:"); for (Stopp s : linje1) { System.out.println(s); } } }