在Java中,List是一個接口,而不是一個具體的實現類。List接口提供了一個sort方法,用于對列表中的元素進行排序。
sort方法有兩種重載形式:
void sort(Comparator<? super E> c)
:根據指定的比較器對列表進行排序。比較器是一個函數式接口,它定義了一個用于比較兩個元素的方法。該方法接受一個Comparator對象作為參數,該對象用于確定元素的順序。比較器可以是匿名內部類,也可以是Lambda表達式。
示例:
List<Integer> list = Arrays.asList(3, 1, 2);
list.sort(new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return o1.compareTo(o2);
}
});
void sort(Comparator<? super E> c)
:根據元素的自然順序對列表進行排序。元素的自然順序是通過元素類實現Comparable接口來定義的。元素類必須實現compareTo方法,該方法用于比較兩個元素的順序。
示例:
List<String> list = Arrays.asList("c", "a", "b");
list.sort();
需要注意的是,List接口不是一個可排序的集合,只有實現了List接口的類(如ArrayList)才能使用sort方法。此外,sort方法會直接修改原始列表的順序,而不是返回一個新的排序后的列表。