美文网首页
Collections.sort()(一)----认识Colle

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

作者: 水土jun | 来源:发表于2017-09-23 15:48 被阅读0次
首先要跟接口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。

相关文章

网友评论

      本文标题:Collections.sort()(一)----认识Colle

      本文链接:https://www.haomeiwen.com/subject/siycextx.html