List排序原理浅析

      有时在项目中我们需要对List中的对象进行排序,可以使用Collections提供的静态方法sort(List list)或sort(List list, Comparator c)对已有的List进行排序。

下面我们分析这两个方法的JDK源码。

 

 public static > void sort(List list) {
        Object[] a = list.toArray();
        Arrays.sort(a);
        ListIterator i = list.listIterator();
        for (int j=0; j
  public static  void sort(List list, Comparator c) {
        Object[] a = list.toArray();
        Arrays.sort(a, (Comparator)c);
        ListIterator i = list.listIterator();
        for (int j=0; j

       可以看到在sort()方法中,先将List中的元素转化成数组,再调用数组的sort()方法,我们顺着源码深究下去,最后归结为对数组进行归并排序,再写回到List中。
     

你可能感兴趣的:(java)