import java.util.Iterator; class Stabel implements Iterable { private Node forste = null; private class Node { Node neste = null; T verdi; Node(T t) { verdi = t; } } public void leggPaa(T t) { Node nyNode = new Node(t); nyNode.neste = forste; forste = nyNode; } public void print() { for (T t : this) { System.out.println(t); } } public T taAv() { if (forste == null) { return null; } T retVerdi = forste.verdi; forste = forste.neste; return retVerdi; } @Override public Iterator iterator() { return new StabelIterator(); } private class StabelIterator implements Iterator { Node itter = null; public T next() { if (itter == null) { itter = forste; return itter.verdi; } itter = itter.neste; return itter.verdi; } public boolean hasNext() { if (itter == null) { return forste != null; } return itter.neste != null; } } }