android/guava/src/com/google/common/collect/Iterators.java
public static <T> Iterator<T> concat(Iterator<? extends Iterator<? extends T>> inputs) {
    return new ConcatenatedIterator<T>(inputs);
  }
public static <T> Iterator<T> concat(Iterator<? extends Iterator<? extends T>> inputs) {
    return new ConcatenatedIterator<T>(inputs);
  }
public static < T > Iterator < T > concat ( Iterator < ? extends Iterator < ? extends T > > inputs ) { return new ConcatenatedIterator < T > ( inputs ) ; }
Combines multiple iterators into a single iterator. The returned iterator iterates across the
elements of each iterator in {@code inputs}. The input iterators are not polled until
necessary.

<p>The returned iterator supports {@code remove()} when the corresponding input iterator
supports it. The methods of the returned iterator may throw {@code NullPointerException} if any
of the input iterators is null.
Combines multiple iterators into a single iterator . The returned iterator iterates across the elements of each iterator in { @code inputs } . The input iterators are not polled until necessary .