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);
  }
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.