public static <E> ArrayDeque<E> newArrayDeque(Iterable<? extends E> elements) {
    if (elements instanceof Collection) {
      return new ArrayDeque<E>(Collections2.cast(elements));
    }
    ArrayDeque<E> deque = new ArrayDeque<E>();
    Iterables.addAll(deque, elements);
    return deque;
  }
public static <E> ArrayDeque<E> newArrayDeque(Iterable<? extends E> elements) {
    if (elements instanceof Collection) {
      return new ArrayDeque<E>(Collections2.cast(elements));
    }
    ArrayDeque<E> deque = new ArrayDeque<E>();
    Iterables.addAll(deque, elements);
    return deque;
  }
public static < E > ArrayDeque < E > newArrayDeque ( Iterable < ? extends E > elements ) { if ( elements instanceof Collection ) { return new ArrayDeque < E > ( Collections2 . cast ( elements ) ) ; } ArrayDeque < E > deque = new ArrayDeque < E > ( ) ; Iterables . addAll ( deque , elements ) ; return deque ; }
Creates an {@code ArrayDeque} containing the elements of the specified iterable, in the order
they are returned by the iterable's iterator.

@since 12.0
Creates an { @code ArrayDeque } containing the elements of the specified iterable in the order they are returned by the iterable s iterator .