Class FilteredIterator<T>

java.lang.Object
org.apache.commons.functor.core.collection.FilteredIterator<T>
Type Parameters:
T - the Iterator generic type
All Implemented Interfaces:
Iterator<T>

public final class FilteredIterator<T> extends Object implements Iterator<T>
Iterator that filters another Iterator by only passing through those elements that are matched by a specified UnaryPredicate.
Version:
$Revision$ $Date$
  • Field Details

    • predicate

      private final UnaryPredicate<? super T> predicate
      The predicate used to test this Iterator elements.
    • iterator

      private final Iterator<? extends T> iterator
      The wrapped iterator.
    • next

      private T next
      Reference to next element has to be returned by this iterator.
    • nextSet

      private boolean nextSet
      Flag to mark this iterator has more elements or not.
    • canRemove

      private boolean canRemove
      Flag to mark current iterator element can be removed.
  • Constructor Details

    • FilteredIterator

      public FilteredIterator(Iterator<? extends T> iterator, UnaryPredicate<? super T> predicate)
      Create a new FilteredIterator.
      Parameters:
      iterator - to filter
      predicate - to apply
  • Method Details

    • hasNext

      public boolean hasNext()
      Specified by:
      hasNext in interface Iterator<T>
      See Also:
    • next

      public T next()
      Specified by:
      next in interface Iterator<T>
      See Also:
    • remove

      public void remove()
      Specified by:
      remove in interface Iterator<T>
      See Also:
    • equals

      public boolean equals(Object obj)
      Overrides:
      equals in class Object
    • hashCode

      public int hashCode()
      Overrides:
      hashCode in class Object
    • toString

      public String toString()
      Overrides:
      toString in class Object
    • filter

      public static <T> Iterator<T> filter(Iterator<? extends T> iter, UnaryPredicate<? super T> pred)
      Get a filtered Iterator instance applying pred to iter.
      Type Parameters:
      T - the input iterator generic type
      Parameters:
      iter - to filter
      pred - to apply
      Returns:
      Iterator
    • setNext

      private boolean setNext()
      Set next element.
      Returns:
      whether the current iterator position is valid
    • returnNext

      private T returnNext()
      Get the next element.
      Returns:
      next element.