class ListReverser implements Iterable { private ListIterator listIterator; public ListReverser(List wrappedList) { this.listIterator = wrappedList.listIterator(wrappedList.size()); } public Iterator iterator() { return new Iterator() { public boolean hasNext() { return listIterator.hasPrevious(); } public T next() { return listIterator.previous(); } public void remove() { listIterator.remove(); } }; } }