sort
public static <T extends Comparable<? super T>> void sort(List<T> list)根據元素的自然順序 對指定列表按升序進行排序。列表中的所有元素都必須實現 Comparable 接口。此外,列表中的所有元素都必須是可相互比較的(也就是說,對於列表中的任何 e1 和 e2 元素,e1.compareTo(e2) 不得拋出 ClassCastException)。
此排序方法具有穩定性:不會因調用 sort 方法而對相等的元素進行重新排序。
指定列表必須是可修改的,但不必是大小可調整的。
該排序算法是壹個經過修改的合並排序算法(其中,如果低子列表中的最高元素小於高子列表中的最低元素,則忽略合並)。此算法提供可保證的 n log(n) 性能。 此實現將指定列表轉儲到壹個數組中,並對數組進行排序,在重置數組中相應位置處每個元素的列表上進行叠代。這避免了由於試圖原地對鏈接列表進行排序而產生的 n2 log(n) 性能。
參數:
list - 要排序的列表。
拋出:
ClassCastException - 如果列表包含不可相互比較 的元素(例如,字符串和整數)。
UnsupportedOperationException - 如果指定列表的列表叠代器不支持 set 操作。
另請參見:
Comparable
--------------------------------------------------------------------------------
sort
public static <T> void sort(List<T> list,
Comparator<? super T> c)根據指定比較器產生的順序對指定列表進行排序。此列表內的所有元素都必須可使用指定比較器相互比較(也就是說,對於列表中的任意 e1 和 e2 元素,c.compare(e1, e2) 不得拋出 ClassCastException)。
此排序被保證是穩定的:不會因調用 sort 而對相等的元素進行重新排序。
排序算法是壹個經過修改的合並排序算法(其中,如果低子列表中的最高元素小於高子列表中的最低元素,則忽略合並)。此算法提供可保證的 n log(n) 性能。 指定列表必須是可修改的,但不必是可大小調整的。此實現將指定列表轉儲到壹個數組中,並對數組進行排序,在重置數組中相應位置每個元素的列表上進行叠代。這避免了由於試圖原地對鏈接列表進行排序而產生的 n2 log(n) 性能。
參數:
list - 要排序的列表。
c - 確定列表順序的比較器。null 值指示應該使用元素的自然順序。
拋出:
ClassCastException - 如果列表中包含不可使用指定比較器相互比較 的元素。
UnsupportedOperationException - 如果指定列表的列表叠代器不支持 set 操作。
另請參見:
Comparator