android/guava/src/com/google/common/collect/Iterables.java
@SafeVarargs
  public static <T> Iterable<T> concat(Iterable<? extends T>... inputs) {
    return FluentIterable.concat(inputs);
  }
@SafeVarargs
  public static <T> Iterable<T> concat(Iterable<? extends T>... inputs) {
    return FluentIterable.concat(inputs);
  }
Combines multiple iterables into a single iterable. The returned iterable has an iterator that
traverses the elements of each iterable in {@code inputs}. The input iterators are not polled
until necessary.

<p>The returned iterable's iterator supports {@code remove()} when the corresponding input
iterator supports it.

<p><b>Java 8 users:</b> The {@code Stream} equivalent of this method is {@code
Streams.concat(...)}.

@throws NullPointerException if any of the provided iterables is null