org.apache.commons.collections.iterators
Class ReverseListIterator

java.lang.Object
  extended by org.apache.commons.collections.iterators.ReverseListIterator
All Implemented Interfaces:
java.util.Iterator, java.util.ListIterator, ResettableIterator, ResettableListIterator

public class ReverseListIterator
extends java.lang.Object
implements ResettableListIterator

Iterates backwards through a List, starting with the last element and continuing to the first. This is useful for looping around a list in reverse order without needing to actually reverse the list.

The first call to next() will return the last element from the list, and so on. The hasNext() method works in concert with the next() method as expected. However, the nextIndex() method returns the correct index in the list, thus it starts high and reduces as the iteration continues. The previous methods work similarly.

Since:
Commons Collections 3.2
Version:
$Revision: $ $Date: 2008-04-10 13:33:15 +0100 (Thu, 10 Apr 2008) $
Author:
Serge Knystautas, Stephen Colebourne

Constructor Summary
ReverseListIterator(java.util.List list)
          Constructor that wraps a list.
 
Method Summary
 void add(java.lang.Object obj)
          Adds a new element to the list between the next and previous elements.
 boolean hasNext()
          Checks whether there is another element.
 boolean hasPrevious()
          Checks whether there is a previous element.
 java.lang.Object next()
          Gets the next element.
 int nextIndex()
          Gets the index of the next element.
 java.lang.Object previous()
          Gets the previous element.
 int previousIndex()
          Gets the index of the previous element.
 void remove()
          Removes the last returned element.
 void reset()
          Resets the iterator back to the start (which is the end of the list as this is a reversed iterator)
 void set(java.lang.Object obj)
          Replaces the last returned element.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

ReverseListIterator

public ReverseListIterator(java.util.List list)
Constructor that wraps a list.

Parameters:
list - the list to create a reversed iterator for
Throws:
java.lang.NullPointerException - if the list is null
Method Detail

hasNext

public boolean hasNext()
Checks whether there is another element.

Specified by:
hasNext in interface java.util.Iterator
Specified by:
hasNext in interface java.util.ListIterator
Returns:
true if there is another element

next

public java.lang.Object next()
Gets the next element. The next element is the previous in the list.

Specified by:
next in interface java.util.Iterator
Specified by:
next in interface java.util.ListIterator
Returns:
the next element in the iterator

nextIndex

public int nextIndex()
Gets the index of the next element.

Specified by:
nextIndex in interface java.util.ListIterator
Returns:
the index of the next element in the iterator

hasPrevious

public boolean hasPrevious()
Checks whether there is a previous element.

Specified by:
hasPrevious in interface java.util.ListIterator
Returns:
true if there is a previous element

previous

public java.lang.Object previous()
Gets the previous element. The next element is the previous in the list.

Specified by:
previous in interface java.util.ListIterator
Returns:
the previous element in the iterator

previousIndex

public int previousIndex()
Gets the index of the previous element.

Specified by:
previousIndex in interface java.util.ListIterator
Returns:
the index of the previous element in the iterator

remove

public void remove()
Removes the last returned element.

Specified by:
remove in interface java.util.Iterator
Specified by:
remove in interface java.util.ListIterator
Throws:
java.lang.UnsupportedOperationException - if the list is unmodifiable
java.lang.IllegalStateException - if there is no element to remove

set

public void set(java.lang.Object obj)
Replaces the last returned element.

Specified by:
set in interface java.util.ListIterator
Parameters:
obj - the object to set
Throws:
java.lang.UnsupportedOperationException - if the list is unmodifiable
java.lang.IllegalStateException - if the iterator is not in a valid state for set

add

public void add(java.lang.Object obj)
Adds a new element to the list between the next and previous elements.

Specified by:
add in interface java.util.ListIterator
Parameters:
obj - the object to add
Throws:
java.lang.UnsupportedOperationException - if the list is unmodifiable
java.lang.IllegalStateException - if the iterator is not in a valid state for set

reset

public void reset()
Resets the iterator back to the start (which is the end of the list as this is a reversed iterator)

Specified by:
reset in interface ResettableIterator
Specified by:
reset in interface ResettableListIterator


Copyright © 2001-2008 The Apache Software Foundation. All Rights Reserved.