ArrayList.sort

Returns a view of the portion of this list between the specified {@code fromIndex}, inclusive, and {@code toIndex}, exclusive. (If {@code fromIndex} and {@code toIndex} are equal, the returned list is empty.) The returned list is backed by this list, so non-structural changes in the returned list are reflected in this list, and vice-versa. The returned list supports all of the optional list operations.

<p>This method eliminates the need for explicit range operations (of the sort that commonly exist for arrays). Any operation that expects a list can be used as a range operation by passing a subList view instead of a whole list. For example, the following idiom removes a range of elements from a list: <pre> list.subList(from, to).clear(); </pre> Similar idioms may be constructed for {@link #indexOf(Object)} and {@link #lastIndexOf(Object)}, and all of the algorithms in the {@link Collections} class can be applied to a subList.

<p>The semantics of the list returned by this method become undefined if the backing list (i.e., this list) is <i>structurally modified</i> in any way other than via the returned list. (Structural modifications are those that change the size of this list, or otherwise perturb it in such a fashion that iterations in progress may yield incorrect results.)

@throws IndexOutOfBoundsException {@inheritDoc} @throws Exception {@inheritDoc}

  1. void sort(bool isAscending)
    class ArrayList(E)
    override
    static if(isOrderingComparable!E)
    void
    sort
    (
    bool isAscending = true
    )
  2. void sort(Comparator!E c)

Meta