code: public static <E> ArrayList<E> newArrayList(E... elements) {
          int capacity = (elements.length * 110) / 100 + 5;
          ArrayList<E> list = new ArrayList<E>(capacity);
          Collections.addAll(list, elements);
          return list;
      }
docs: Creates a resizable {@code ArrayList} instance containing the given
  elements.
  
  <p><b>Note:</b> due to a bug in javac 1.5.0_06, we cannot support the
  following:
  
  <p>{@code List<Base> list = Lists.newArrayList(sub1, sub2);}
  
  <p>where {@code sub1} and {@code sub2} are references to subtypes of
  {@code Base}, not of {@code Base} itself. To get around this, you must
  use:
  
  <p>{@code List<Base> list = Lists.<Base>newArrayList(sub1, sub2);}
  
  @param elements the elements that the list should contain, in order
  @return a newly-created {@code ArrayList} containing those elements