public Iterator<Linkable> iterator() {
    // Klasa anonimowa jest zdefiniowana jako część instrukcji zwrotnej.
    return new Iterator<Linkable>() {
        Linkable current;
        // zamiana konstruktora na inicjator egzemplarza
        { current = head; }

        // Trzy poniższe metody są zdefiniowane przez interfejs Iterator.
        public boolean hasNext() { return current != null; }
        public Linkable next() {
            if (current == null)
              throw new java.util.NoSuchElementException();
            Linkable value = current;
            current = current.getNext();
            return value;
        }
        public void remove() { throw new UnsupportedOperationException(); }
    };  // Zwróć uwagę na średnik, który jest w tym miejscu niezbędny i oznacza koniec instrukcji return.
}
