org.apache.commons.collections.iterators

Class ReverseListIterator

public class ReverseListIterator extends 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: 2006-05-12 23:52:43 +0100 (Fri, 12 May 2006) $

Author: Serge Knystautas Stephen Colebourne

Constructor Summary
ReverseListIterator(List list)
Constructor that wraps a list.
Method Summary
voidadd(Object obj)
Adds a new element to the list between the next and previous elements.
booleanhasNext()
Checks whether there is another element.
booleanhasPrevious()
Checks whether there is a previous element.
Objectnext()
Gets the next element.
intnextIndex()
Gets the index of the next element.
Objectprevious()
Gets the previous element.
intpreviousIndex()
Gets the index of the previous element.
voidremove()
Removes the last returned element.
voidreset()
Resets the iterator back to the start (which is the end of the list as this is a reversed iterator)
voidset(Object obj)
Replaces the last returned element.

Constructor Detail

ReverseListIterator

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

Parameters: list the list to create a reversed iterator for

Throws: NullPointerException if the list is null

Method Detail

add

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

Parameters: obj the object to add

Throws: UnsupportedOperationException if the list is unmodifiable IllegalStateException if the iterator is not in a valid state for set

hasNext

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

Returns: true if there is another element

hasPrevious

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

Returns: true if there is a previous element

next

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

Returns: the next element in the iterator

nextIndex

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

Returns: the index of the next element in the iterator

previous

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

Returns: the previous element in the iterator

previousIndex

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

Returns: the index of the previous element in the iterator

remove

public void remove()
Removes the last returned element.

Throws: UnsupportedOperationException if the list is unmodifiable IllegalStateException if there is no element to remove

reset

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

set

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

Parameters: obj the object to set

Throws: UnsupportedOperationException if the list is unmodifiable IllegalStateException if the iterator is not in a valid state for set

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