Package: org.codehaus.groovy.util

## [Java] Class ListBufferedIterator<T>

- org.codehaus.groovy.util.ListBufferedIterator

- All Implemented Interfaces and Traits:
    BufferedIterator

      public class ListBufferedIterator<T>
      extends Object
      implements BufferedIterator

  An implementation for BufferedIterator wraps ListIterator. This version provides an implementation for remove().

  Since:
    2.5.0

- - ### Constructor Summary

    Constructors
    Constructor and description
    `ListBufferedIterator(List<T> list)` Creates a buffered iterator that peeks into the supplied 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` | `head()` * Returns the next element without advancing the iterator. * * Returns: the next element
    `` | `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 ListBufferedIterator(List<T> list)

      Creates a buffered iterator that peeks into the supplied list.

      Parameters:
        `list` - the list to iterate

  - ### 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 head()

      * Returns the next element without advancing the iterator. * *

      Returns:
        the next element

    - #### 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.