Class TransformingIterator<InternalV,​ExternalV>

  • All Implemented Interfaces:
    java.util.Iterator<ExternalV>
    Direct Known Subclasses:
    TransformingListIterator

    public class TransformingIterator<InternalV,​ExternalV>
    extends java.lang.Object
    implements java.util.Iterator<ExternalV>
    A TransformingIterator applies "just in time" transformations to an Interator<InternalV> in order to make it like an Interator<ExternalV>.

    The transformations are applied "just in time", that is, the values are converted only when they are used, not during the construction of the TransformingIterator.

    See Also:
    TransformingMap
    • Field Detail

      • readTransformation

        protected final java.util.function.Function<? super InternalV,​? extends ExternalV> readTransformation
      • internalIterator

        protected final java.util.Iterator<InternalV> internalIterator
    • Constructor Detail

      • TransformingIterator

        public TransformingIterator​(java.util.Iterator<InternalV> internalIterator,
                                    java.util.function.Function<? super InternalV,​? extends ExternalV> readTransformation)
    • Method Detail

      • hasNext

        public boolean hasNext()
        Specified by:
        hasNext in interface java.util.Iterator<InternalV>
      • next

        public ExternalV next()
        Specified by:
        next in interface java.util.Iterator<InternalV>
      • remove

        public void remove()
        Specified by:
        remove in interface java.util.Iterator<InternalV>
      • forEachRemaining

        public void forEachRemaining​(java.util.function.Consumer<? super ExternalV> action)
        Specified by:
        forEachRemaining in interface java.util.Iterator<InternalV>
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class java.lang.Object
      • equals

        public boolean equals​(java.lang.Object obj)
        Overrides:
        equals in class java.lang.Object
      • toString

        public java.lang.String toString()
        Overrides:
        toString in class java.lang.Object