--- /dev/null
+package jalview.util;
+
+import java.util.Iterator;
+import java.util.List;
+import java.util.ListIterator;
+
+/**
+ * An iterator that traverses a list backwards.
+ *
+ * @author gmcarstairs (and checked against
+ * org.codehaus.groovey.runtime.ReverseListIterator)
+ *
+ * @param <E>
+ */
+public class ReverseListIterator<E> implements Iterator<E>
+{
+
+ private ListIterator<E> iterator;
+
+ public ReverseListIterator(List<E> stuff)
+ {
+ this.iterator = stuff.listIterator(stuff.size());
+ }
+ @Override
+ public boolean hasNext()
+ {
+ return iterator.hasPrevious();
+ }
+
+ @Override
+ public E next()
+ {
+ return iterator.previous();
+ }
+
+ @Override
+ public void remove()
+ {
+ iterator.remove();
+ }
+
+}