public class SomeList implements Iterable { protected class Element { Element next; Object data; } protected class Iterator extends java.util.Iterator { Element current; public E hasNext() { return (current != last); } ... } Element first; Element last; ... }