public static <T> Iterator<T> concat(Iterator<? extends 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.
	
	@throws NullPointerException if any of the provided iterators is null
    """
    return concatNoDefensiveCopy(Arrays.copyOf(inputs, inputs.length));
  }
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
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 .