Class FilterIterator<T,​S>

  • Type Parameters:
    T - Type of Iterator
    S - Type of objects returned by the iterator.
    All Implemented Interfaces:
    java.util.Iterator<S>
    Direct Known Subclasses:
    FileArrayIterator

    public abstract class FilterIterator<T,​S>
    extends java.lang.Object
    implements java.util.Iterator<S>
    An iterator that filters out and converts items from another iterator. Java 1.5 type: FilterIterator,> filter( o);
    • Constructor Summary

      Constructors 
      Constructor Description
      FilterIterator​(java.util.Iterator<T> i)
      Create a new iterator based on an old one.
    • Method Summary

      All Methods Instance Methods Abstract Methods Concrete Methods 
      Modifier and Type Method Description
      protected abstract S filter​(T o)
      Returns the object corresponding to the given object, or null if that object is to be skipped.
      boolean hasNext()
      Returns true if the iteration has more elements.
      S next()
      Returns the next element in the iteration.
      void remove()
      Removes from the underlying collection the last element returned by the iterator (optional operation).
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
      • Methods inherited from interface java.util.Iterator

        forEachRemaining
    • Constructor Detail

      • FilterIterator

        public FilterIterator​(java.util.Iterator<T> i)
        Create a new iterator based on an old one. The old one must not contain any null entries.
        Parameters:
        i - An iterator
    • Method Detail

      • filter

        protected abstract S filter​(T o)
        Returns the object corresponding to the given object, or null if that object is to be skipped.
        Parameters:
        o - An object in the source iterator domain
        Returns:
        An object in this iterators domain, or null
      • hasNext

        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.)
        Specified by:
        hasNext in interface java.util.Iterator<T>
        Returns:
        true if the iterator has more elements.
      • next

        public S next()
        Returns the next element in the iteration. Calling this method repeatedly until the hasNext() method returns false will return each element in the underlying collection exactly once.
        Specified by:
        next in interface java.util.Iterator<T>
        Returns:
        the next element in the iteration.
        Throws:
        java.util.NoSuchElementException - iteration has no more elements.
      • remove

        public void remove()
        Removes from the underlying collection the last element returned by the 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.
        Specified by:
        remove in interface java.util.Iterator<T>
        Throws:
        java.lang.UnsupportedOperationException - if the remove operation is not supported by this Iterator.
        java.lang.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.