Class FilterIterator<E>

java.lang.Object
org.apache.commons.collections4.iterators.FilterIterator<E>
Type Parameters:
E - the type of elements returned by this iterator.
All Implemented Interfaces:
Iterator<E>, IteratorOperations<E>
Direct Known Subclasses:
UniqueFilterIterator

public class FilterIterator<E> extends Object implements IteratorOperations<E>
Decorates an Iterator using an optional predicate to filter elements.

This iterator decorates the underlying iterator, only allowing through those elements that match the specified Predicate.

Since:
1.0
  • Constructor Details Link icon

    • FilterIterator Link icon

      public FilterIterator()
      Constructs a new FilterIterator that will not function until setIterator is invoked.
    • FilterIterator Link icon

      public FilterIterator(Iterator<? extends E> iterator)
      Constructs a new FilterIterator that will not function until setPredicate is invoked.
      Parameters:
      iterator - the iterator to use
    • FilterIterator Link icon

      public FilterIterator(Iterator<? extends E> iterator, Predicate<? super E> predicate)
      Constructs a new FilterIterator that will use the given iterator and predicate.
      Parameters:
      iterator - the iterator to use
      predicate - the predicate to use, null accepts all values.
  • Method Details Link icon

    • getIterator Link icon

      public Iterator<? extends E> getIterator()
      Gets the iterator this iterator is using.
      Returns:
      the underlying iterator.
    • getPredicate Link icon

      public Predicate<? super E> getPredicate()
      Gets the predicate this iterator is using.
      Returns:
      the filtering predicate.
    • hasNext Link icon

      public boolean hasNext()
      Returns true if the underlying iterator contains an object that matches the predicate.
      Specified by:
      hasNext in interface Iterator<E>
      Returns:
      true if there is another object that matches the predicate
      Throws:
      NullPointerException - if either the iterator or predicate are null
    • next Link icon

      public E next()
      Returns the next object that matches the predicate.
      Specified by:
      next in interface Iterator<E>
      Returns:
      the next object which matches the given predicate
      Throws:
      NullPointerException - if either the iterator or predicate are null
      NoSuchElementException - if there are no more elements that match the predicate
    • remove Link icon

      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 if next() was called, but not after hasNext(), because the hasNext() call changes the base iterator.
      Specified by:
      remove in interface Iterator<E>
      Throws:
      IllegalStateException - if hasNext() has already been called.
    • setIterator Link icon

      public void setIterator(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
    • setPredicate Link icon

      public void setPredicate(Predicate<? super E> predicate)
      Sets the predicate this the iterator to use where null accepts all values.
      Parameters:
      predicate - the predicate to use, null accepts all values.