1,CompareTo里的compareTo(Object o)抽象方法和Comparator里的compare(Object o1,Object o2)抽象方法有什么不同?补充说明一下

解决方案 »

  1.   

    1===>这两个方法分属两个不同的接口,
    Comparator.compare(Object o1, Object o2) and
    Comparable.compareTo(Object o),这两个接口是不同的,在实现这两个方法时,应该是差不多的,只是一个用自身做为另一个对象而已.
    2===>用List或Collection也可.
    3===>它的sort方法中会调用compareTo方法来决定存放的次序.
      

  2.   

    1,CompareTo里的compareTo(Object o)抽象方法和compare(Object o1,Object o2)
    的抽象方法有什么不同?r:这两个方法都是为比较两个对象而提供的接口方法,在比较两个对象方面本质上没有区别,只是调用方式不同。但Comparable接口和Comparator接口是有区别的:一个是被比较的对象,一个是执行比较的对象。
    2,我在看java核心1里CompareTo里的例子,他是一个员工类实现了compareto接口,
    然后调用了Arrays.sort()来排序员工的薪水,是每个实现compareto接口的类都要
    用arrays里的sort方法来排序么?r:当然不是,你可以写自己的排序算法。Arrays只是JDK2.0以后提供的一个工具类,用来方便你的排序。在比较先后顺序是它必须要用到被比较对象的compareTo方法。所以如果你想利用Arrays类提供的方便性,就必须让你的对象实现Comparable接口。当然,如果你不想用Arrays类而自己写排序代码,就可以不实现Comparable接口。3,在覆盖compareto借口里方法时用用比较大小来返回1,-1,0 不知道为什么这样子他就能
    实现排序了,,,r: 检查Arrays类代码你就会发现,它是根据compareTo方法的返回值来决定对象在排序时的先后位置的。
      

  3.   

    应该是Comparable ,Comparator 吧,
    实现Comparable接口的类(必须实现compareTo(Object o) 抽象类不再讨论之列)具有了排序的能力,在实现的compareTo(Object o) 中通过返回1,-1,0 来让Arrays.sortsort(Object[] a) 来判断数组中的对象的顺序(循环比对),所以可以实现排序。在Arrays的sort(Object[] a, Comparator c)方法中Comparator是另外的一个实现了Comparator接口的类,Arrays用Comparator中提供的compare(Object o1, Object o2) 方法来循环比对数组中对象的顺序。 
      

  4.   

    一个是java.lang 一个是java.util包的,,看看api 吧,,
    给分 我给你一个例子看吧。
      

  5.   

    █████████
    █┏━━━━━┓█
    █★          ★█
    █   ☆ up ☆   █
    █          █
    █ 〖初窥Java〗 █
    █ 【虚心学习】 █
    █★          ★█
    █┗━━━━━┛█
    █████████