Class FlatteningIterator<E>

  • Type Parameters:
    E -
    All Implemented Interfaces:
    Iterator<E>

    public class FlatteningIterator<E>
    extends Object
    implements Iterator<E>
    An iterator that 'flattens out' collections, iterators, arrays, etc. That is it will iterate out their contents in order, descending into any iterators, iterables or arrays provided to it. An example (not valid Java for brevity - some type declarations are ommitted): new FlattingIterator({1, 2, 3}, {{1, 2}, {3}}, new ArrayList({1, 2, 3})) Will iterate through the sequence 1, 2, 3, 1, 2, 3, 1, 2, 3. Note that this implements a non-generic version of the Iterator interface so may be cast appropriately - it's very hard to give this class an appropriate generic type.
    Author:
    david
    • Constructor Detail

      • FlatteningIterator

        public FlatteningIterator​(Object... objects)
    • Method Detail

      • remove

        public void remove()
        Specified by:
        remove in interface Iterator<E>
      • next

        public E next()
        Returns the next element in our iteration, throwing a NoSuchElementException if none is found.
        Specified by:
        next in interface Iterator<E>
      • hasNext

        public boolean hasNext()
        Returns if there are any objects left to iterate over. This method can change the internal state of the object when it is called, but repeated calls to it will not have any additional side effects.
        Specified by:
        hasNext in interface Iterator<E>