org.apache.commons.collections4.iterators
Class PushbackIterator<E>

java.lang.Object
  extended by org.apache.commons.collections4.iterators.PushbackIterator<E>
All Implemented Interfaces:
Iterator<E>

public class PushbackIterator<E>
extends Object
implements Iterator<E>

Decorates an iterator to support pushback of elements.

The decorator stores the pushed back elements in a LIFO manner: the last element that has been pushed back, will be returned as the next element in a call to next().

The decorator does not support the removal operation. Any call to remove() will result in an UnsupportedOperationException.

Since:
4.0
Version:
$Id: PushbackIterator.java 1479763 2013-05-07 05:28:39Z tn $

Constructor Summary
PushbackIterator(Iterator<? extends E> iterator)
          Constructor.
 
Method Summary
 boolean hasNext()
           
 E next()
           
 void pushback(E item)
          Push back the given element to the iterator.
static
<E> PushbackIterator<E>
pushbackIterator(Iterator<? extends E> iterator)
          Decorates the specified iterator to support one-element lookahead.
 void remove()
          This iterator will always throw an UnsupportedOperationException.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PushbackIterator

public PushbackIterator(Iterator<? extends E> iterator)
Constructor.

Parameters:
iterator - the iterator to decorate
Method Detail

pushbackIterator

public static <E> PushbackIterator<E> pushbackIterator(Iterator<? extends E> iterator)
Decorates the specified iterator to support one-element lookahead.

If the iterator is already a PeekingIterator it is returned directly.

Type Parameters:
E - the element type
Parameters:
iterator - the iterator to decorate
Returns:
a new peeking iterator
Throws:
IllegalArgumentException - if the iterator is null

pushback

public void pushback(E item)
Push back the given element to the iterator.

Calling next() immediately afterwards will return exactly this element.

Parameters:
item - the element to push back to the iterator

hasNext

public boolean hasNext()
Specified by:
hasNext in interface Iterator<E>

next

public E next()
Specified by:
next in interface Iterator<E>

remove

public void remove()
This iterator will always throw an UnsupportedOperationException.

Specified by:
remove in interface Iterator<E>
Throws:
UnsupportedOperationException - always


Copyright © 2001–2013 The Apache Software Foundation. All rights reserved.