Class FilterIterator<E>
- java.lang.Object
-
- org.apache.commons.collections4.iterators.FilterIterator<E>
-
- All Implemented Interfaces:
java.util.Iterator<E>
- Direct Known Subclasses:
UniqueFilterIterator
public class FilterIterator<E> extends java.lang.Object implements java.util.Iterator<E>
Decorates anotherIterator
using a predicate to filter elements.This iterator decorates the underlying iterator, only allowing through those elements that match the specified
Predicate
.- Since:
- 1.0
-
-
Constructor Summary
Constructors Constructor Description FilterIterator()
Constructs a newFilterIterator
that will not function untilsetIterator
is invoked.FilterIterator(java.util.Iterator<? extends E> iterator)
Constructs a newFilterIterator
that will not function untilsetPredicate
is invoked.FilterIterator(java.util.Iterator<? extends E> iterator, Predicate<? super E> predicate)
Constructs a newFilterIterator
that will use the given iterator and predicate.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description java.util.Iterator<? extends E>
getIterator()
Gets the iterator this iterator is using.Predicate<? super E>
getPredicate()
Gets the predicate this iterator is using.boolean
hasNext()
Returns true if the underlying iterator contains an object that matches the predicate.E
next()
Returns the next object that matches the predicate.void
remove()
Removes from the underlying collection of the base iterator the last element returned by this iterator.void
setIterator(java.util.Iterator<? extends E> iterator)
Sets the iterator for this iterator to use.void
setPredicate(Predicate<? super E> predicate)
Sets the predicate this the iterator to use.
-
-
-
Constructor Detail
-
FilterIterator
public FilterIterator()
Constructs a newFilterIterator
that will not function untilsetIterator
is invoked.
-
FilterIterator
public FilterIterator(java.util.Iterator<? extends E> iterator)
Constructs a newFilterIterator
that will not function untilsetPredicate
is invoked.- Parameters:
iterator
- the iterator to use
-
-
Method Detail
-
hasNext
public boolean hasNext()
Returns true if the underlying iterator contains an object that matches the predicate.- Specified by:
hasNext
in interfacejava.util.Iterator<E>
- Returns:
- true if there is another object that matches the predicate
- Throws:
java.lang.NullPointerException
- if either the iterator or predicate are null
-
next
public E next()
Returns the next object that matches the predicate.- Specified by:
next
in interfacejava.util.Iterator<E>
- Returns:
- the next object which matches the given predicate
- Throws:
java.lang.NullPointerException
- if either the iterator or predicate are nulljava.util.NoSuchElementException
- if there are no more elements that match the predicate
-
remove
public void remove()
Removes from the underlying collection of the base iterator the last element returned by this iterator. This method can only be called ifnext()
was called, but not afterhasNext()
, because thehasNext()
call changes the base iterator.- Specified by:
remove
in interfacejava.util.Iterator<E>
- Throws:
java.lang.IllegalStateException
- ifhasNext()
has already been called.
-
getIterator
public java.util.Iterator<? extends E> getIterator()
Gets the iterator this iterator is using.- Returns:
- the iterator
-
setIterator
public void setIterator(java.util.Iterator<? extends E> iterator)
Sets the iterator for this iterator to use. If iteration has started, this effectively resets the iterator.- Parameters:
iterator
- the iterator to use
-
getPredicate
public Predicate<? super E> getPredicate()
Gets the predicate this iterator is using.- Returns:
- the predicate
-
-