如题,感觉两个接口差不多,都会重写.

解决方案 »

  1.   

    Comparable表示内在、自然的顺序。Comparator特别的需求。比如发表鸟语论文时,作者署名按字母排序,这里使用属于Comparable,若是某人认为自己年龄大/职位高必须排在前,就需要使用Comparator了。
      

  2.   

    那为什么要重写Comparable里面的方法呢?
      

  3.   

    Comparable接口一般应用于实体类。实现一个默认的排序。
    Comparator接口是来弥补Comparable的不足。
    假设你当前实体类的默认排序不符合我的要求,而这里我又无法修改你的源码/又或者一个集合对象我可以需要N种排序Comparable接口是无法全部满足的。
    那么我就选择新建一个类实现Comparator接口去排序。
      

  4.   

    public int compareTo(T o);
    int compare(T o1, T o2);
    看看这二个接口的方法就有很大不同了,前者一般是将this对象和参数对象对比,后者是将二个参数作比较对象通常是作为一个比较器使用