Figure 12: Implements an iterator via an inner class
class FixedStack implements Stack { private int capacity; private int size; private Object[] data; private class StackIter implements Iterator { private int pos = 0; public boolean hasNext() { return pos < size; } public Object next() { return hasNext() ? data[pos++] : null; } } public Iterator iterator() { return new StackIter(); } // Other methods unchanged ... }