Java集合教程 - Java集合算法
列表排序
Collection类中的两个静态方法会对List进行排序。sort(List list)按照由元素实现的Comparable接口定义的顺序对List中的元素进行排序。
sort(List list,Comparator c)使用传入的Comparator对象对元素进行排序。
我们还可以使用List接口中的sort(Comparator c)对List进行排序,而不使用Collections类。
以下代码演示了如何对List进行排序:import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Main {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("J");
list.add("R");
list.add("C");
list.add("X");
System.out.println("List: " + list);
// Uses Comparable implementation in String class // to sort the list in natural order Collections.sort(list);
System.out.println("Sorted List: " + list);
}
}
上面的代码生成以下结果。
例子
以下代码使用List接口中的sort()方法按其元素长度的升序对列表进行排序:import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
public class Main {
public static void main(String[] args) {
List list = new ArrayList<>();
list.add("Java");
list.add("R");
list.add("CSS");
list.add("XML");
System.out.println("List: " + list);
// Uses List.sort() method with a Comparator list.sort(Comparator.comparing(String::length));
System.out.println("Sorted List: " + list);
}
}
上面的代码生成以下结果。
sort()方法使用修改的mergeesort算法,这是一个稳定的排序。
在稳定的排序中,相等的元素将在排序操作之后保持在它们当前的位置。
排序提供了n*log(n)性能,