美文网首页
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