Collections.sort()(一)----认识Collections类

首先要跟接口Collection区别开来,Collection接口是我们最熟悉的一个接口,常见的List,Set都继承于Collection。
Collections是一个工具类,里面有一系列的静态方法,例如有:
  • sort():对一个List中的元素进行排序
  • shuffle():打乱一个List中元素顺序
  • reverse():反转一个List中元素
Conllections不能new出来,因为构造方法被私有化了。
public class Collections {
    // Suppresses default constructor, ensuring non-instantiability.
    private Collections() {
    }
Collections中的sort方法详情

具体在Arrays.class中是这样的:

  public static <T> void sort(T[] a, Comparator<? super T> c) {
        if (c == null) {
            sort(a);
        } else {
            if (LegacyMergeSort.userRequested)
                legacyMergeSort(a, c);//归并排序
            else
                TimSort.sort(a, 0, a.length, c, null, 0, 0);//归并排序的优化版本
        }
    }

    /** To be removed in a future release. */
    private static <T> void legacyMergeSort(T[] a, Comparator<? super T> c) {
        T[] aux = a.clone();
        if (c==null)
            mergeSort(aux, a, 0, a.length, 0);
        else
            mergeSort(aux, a, 0, a.length, 0, c);
    }

主要用到了归并排序算法mergesort。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容