code: public static <E extends Comparable<? super E>> ImmutableList<E> sortedCopyOf(
        Iterable<? extends E> elements) {
      Comparable<?>[] array = Iterables.toArray(elements, new Comparable<?>[0]);
      checkElementsNotNull((Object[]) array);
      Arrays.sort(array);
      return asImmutableList(array);
    }
docs: Returns an immutable list containing the given elements, sorted according to their natural
  order. The sorting algorithm used is stable, so elements that compare as equal will stay in the
  order in which they appear in the input.
  
  <p>If your data has no duplicates, or you wish to deduplicate elements, use {@code
  ImmutableSortedSet.copyOf(elements)}; if you want a {@code List} you can use its {@code
  asList()} view.
  
  <p><b>Java 8 users:</b> If you want to convert a {@link java.util.stream.Stream} to a sorted
  {@code ImmutableList}, use {@code stream.sorted().collect(toImmutableList())}.
  
  @throws NullPointerException if any element in the input is null
  @since 21.0