public <E extends T> List<E> sortedCopy(Iterable<E> elements) {
    @SuppressWarnings("unchecked") // does not escape, and contains only E's
    E[] array = (E[]) Iterables.toArray(elements);
    Arrays.sort(array, this);
    return Lists.newArrayList(Arrays.asList(array));
  }
public <E extends T> List<E> sortedCopy(Iterable<E> elements) {
    @SuppressWarnings("unchecked") 
    E[] array = (E[]) Iterables.toArray(elements);
    Arrays.sort(array, this);
    return Lists.newArrayList(Arrays.asList(array));
  }
public < E extends T > List < E > sortedCopy ( Iterable < E > elements ) { @ SuppressWarnings ( "unchecked" ) // does not escape, and contains only E's E [ ] array = ( E [ ] ) Iterables . toArray ( elements ) ; Arrays . sort ( array , this ) ; return Lists . newArrayList ( Arrays . asList ( array ) ) ; }
TODO(kevinb): rerun benchmarks including new options
TODO ( kevinb ) : rerun benchmarks including new options