Package: org.codehaus.groovy.runtime

## [Java] Class ReverseListIterator<T>

- org.codehaus.groovy.runtime.ReverseListIterator

- All Implemented Interfaces and Traits:
    Iterator

      public class ReverseListIterator<T>
      extends Object
      implements Iterator

  A reverse iterator over a list. Utilizes the ListIterator obtained from the provided List and converts it to an Iterator that efficiently traverses the `List` in reverse. The fail-fast semantics of this iterator are the same as the semantics of the underlying `ListIterator`.

- - ### Constructor Summary

    Constructors
    Constructor and description
    `ReverseListIterator(List<T> list)` Constructs a new `ReverseListIterator` for the provided list.

  - ### Methods Summary

    Methods
    Type Params | Return Type | Name and description
    --- | --- | ---
    `` | `public boolean` | `hasNext()` Returns `true` if the iteration has more elements. (In other words, returns `true` if next would return an element rather than throwing an exception.) Returns: `true` if the iteration has more elements
    `` | `public T` | `next()` Returns the next element in the iteration. throws: NoSuchElementException if the iteration has no more elements Returns: the next element in the iteration
    `` | `public void` | `remove()` Removes from the underlying collection the last element returned by this iterator (optional operation). This method can be called only once per call to next. The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method, unless an overriding class has specified a concurrent modification policy. The behavior of an iterator is unspecified if this method is called after a call to the forEachRemaining method. throws: UnsupportedOperationException if the `remove` operation is not supported by this iterator throws: IllegalStateException if the `next` method has not yet been called, or the `remove` method has already been called after the last call to the `next` method Implementation Requirements: The default implementation throws an instance of UnsupportedOperationException and performs no other action.

  - ### Inherited Methods Summary

    Inherited Methods
    Methods inherited from class | Name
    --- | ---
    `class Object` | `equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### public ReverseListIterator(List<T> list)

      Constructs a new `ReverseListIterator` for the provided list.

      Parameters:
        `list` - the list to iterate over in reverse

  - ### Method Detail

    - #### public boolean hasNext()

      Returns `true` if the iteration has more elements. (In other words, returns `true` if next would return an element rather than throwing an exception.)

      Returns:
        `true` if the iteration has more elements

    - #### public T next()

      Returns the next element in the iteration.

      throws:
        NoSuchElementException if the iteration has no more elements
      Returns:
        the next element in the iteration

    - #### public void remove()

      Removes from the underlying collection the last element returned by this iterator (optional operation). This method can be called only once per call to next.

      The behavior of an iterator is unspecified if the underlying collection is modified while the iteration is in progress in any way other than by calling this method, unless an overriding class has specified a concurrent modification policy.

      The behavior of an iterator is unspecified if this method is called after a call to the forEachRemaining method.

      throws:
        UnsupportedOperationException if the `remove` operation is not supported by this iterator
      throws:
        IllegalStateException if the `next` method has not yet been called, or the `remove` method has already been called after the last call to the `next` method
      Implementation Requirements:
        The default implementation throws an instance of UnsupportedOperationException and performs no other action.