zoukankan      html  css  js  c++  java
  • Java学习笔记-Collections.sort详解

    一、使用方法

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

    eg:

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

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

        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]);
        }
        }

    好,来看看数组的排序:

        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),时间复杂度不错,可以多使用
        }
  • 相关阅读:
    Remote Procedure Call (RPC) Locator与X3
    Delphi的悬浮窗口
    改变CSS样式
    JavaScript 打印Web页面指定区域的信息
    判断页面元素存在与否
    如何处理HTML标签属性
    jQuery 获取和设置表单元素
    如何添加/移除CSS类
    处理网页内容
    正则表达式 收集
  • 原文地址:https://www.cnblogs.com/lance-/p/3590159.html
Copyright © 2011-2022 走看看