android/guava/src/com/google/common/collect/Iterators.java
public static <T> Iterator<T> concat(Iterator<? extends T>... inputs) {
    return concatNoDefensiveCopy(Arrays.copyOf(inputs, inputs.length));
  }
public static <T> Iterator<T> concat(Iterator<? extends T>... inputs) {
    return concatNoDefensiveCopy(Arrays.copyOf(inputs, inputs.length));
  }
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.

@throws NullPointerException if any of the provided iterators is null