首页 > 其他 > 详细

Java学习笔记-Collections.sort详解

时间:2014-03-11 09:25:21      阅读:470      评论:0      收藏:0      [点我收藏+]

一、使用方法

bubuko.com,布布扣

你可以按照默认的自然序列来排序,当然也可以自定义排序方式自己实现Comparator接口,注意这是一个接口,你只需要自己实现里面的compare()即可。

eg:

Collections.sort(al, new Comparator<Interval>() {
  public int compare(Interval b1, Interval b2) {
    return b1.start - b2.start;
  }
});

二、由jdk的源码来看看,Java如何泛化的来处理排序问题。

bubuko.com,布布扣
    public static <T> void sort(List<T> list, Comparator<? super T> c) {//<T>----泛化类型,不管是什么类型的列表都可以实现排序功能
    Object[] a = list.toArray();//转化为数组再操作
    Arrays.sort(a, (Comparator)c);//调用数组的排序
    ListIterator i = list.listIterator();
    for (int j=0; j<a.length; j++) {
        i.next();
        i.set(a[j]);
    }
    }
bubuko.com,布布扣

好,来看看数组的排序:

bubuko.com,布布扣
    public static <T> void sort(T[] a, Comparator<? super T> c) {
    T[] aux = (T[])a.clone();
        if (c==null)//c可以为空,就成了自然顺序;

            mergeSort(aux, a, 0, a.length, 0);
        else
            mergeSort(aux, a, 0, a.length, 0, c);//以特定的大小关系进行归并排序。时间复杂度O(nlgn),时间复杂度不错,可以多使用
    }
bubuko.com,布布扣

Java学习笔记-Collections.sort详解,布布扣,bubuko.com

Java学习笔记-Collections.sort详解

原文:http://www.cnblogs.com/lance-/p/3590159.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!