感谢,我不太懂,感谢,能详细解释一下吗,我分不多了,感谢

解决方案 »

  1.   

    对象当然要自定义比较标准啦。考虑你和你朋友,从年龄上说,你可能比你朋友大,但也许从身高上他比你高,如果不定义比较标准,谁知道你在比较什么呢?简单类型除了boolean,基本上都可以看作是数字,数字总是有大小之分的,所以都可以直接比较。
      

  2.   

    使用内置的sorting函数时,你可以对任何基本类型数组排序,也可以对对象数组进行排序(对象实现了Comparable或者拥有相关的Comparator)。Java标准程序库中的排序算法会针对不同的类型进行不同的排序。基本类型使用QuickSort,对象则使用stable merge sort。
      

  3.   

    除了让对象实现Comparable接口以外,你还可以使用Comparator来比较,就是自定义一个比较函数,然后传入sort方法中。由于JAVA中没有类似“指向函数的指针”的东西,所以用Comparator接口来实现。如:Arrays.sort(arr, new Comparator() {
    public int compare(Object o1, Object o2) { // 定义比较规则; }
    });
      

  4.   

    感谢二位
    是不是我做Arrays.sort(对象数组);排序时,,自动调用的是对象所属的类实现Comparable接口中程序员重写的CompareTo方法?
      

  5.   

    实现Comparable interface,这个接口拥有两个函数compare()和equals()。如楼上一样重写compare的实现,而一般不用重写equals,此equals继承Object中的缺省equals,这样就能满足Comparable interface。