public class employy implements Comparable <employy>{ 
     public int compareTo(employy other) 
    {  
        if(salary <other.salary) 
            return -1; 
        if(salary>other.salary) 
            return 1; 
            return 0; 
    } 
}
接口问题,请问Comparable这个接口是JDK自带的吗?是不是不用义可以直接实现,还有用Arrays.sort方法不是必须实现Comparable接口吗?然后重写里面的compareTo方法吗?那为什么不写implements Comparable <employy>程序也可以执行呢希望知道的告诉下,3Q.我是初学的,很多不是很清楚.

解决方案 »

  1.   

    我的意思就是用Arrays.sort方法不是必须实现Comparable这个接口吗?那为什么我刚才有一同学没实现也可以用呀?
      

  2.   

    接口问题,请问Comparable这个接口是JDK自带的吗?是不是不用义可以直接实现,还有用Arrays.sort方法不是必须实现Comparable接口吗?然后重写里面的compareTo方法吗?那为什么不写implements Comparable  <employy>程序也可以执行呢希望知道的告诉下,3Q.我是初学的,很多不是很清楚.1。Comparable这个接口是JDK自带的。
    2。可以直接实现
    3。Arrays.sort(employy[] employy );//你假如排序你这个类的话必须实现Comparable,是的是实现compareTo方法,而不是重写
    除非,你实现Comparator接口!这时候Arrays.sort方法制定这个排序器
    4。那为什么不写implements Comparable  <employy>?
    这时候它不把compareTo方法为Comparable的方法的实现,而看作是你自己的方法,不是实现它的!所以没事!
    但是你要用到Arrays.sort方法就挂了,注意,这时候这个数组里必须有2各以上的元素!
      

  3.   

    不是必须的,你可以实现也可以不实现的,,
    为什么要实现Comparable这个接口,重写compareTo方法呢?
    是为了数组按照你自己的意愿去比较,,
    就拿你的employy 对象来说把,,
    例如employy 这个对象,有name,age,等属性,,
    其中age为int类型,,
    你要想数组按照age来排序的话,,你就得实现Comparable这个接口,重写compareTo方法,
    在compareTo方法里,,按年龄进行比较了
      

  4.   

    注释下:我在上面说到 重写compareTo方法是有问题,,
    应当改为构造自己的比较器
      

  5.   

    这个接口是JDK提供的,如果你要使用排序的话,就要实现这个接口,否则不用
      

  6.   

    想要创建自己的可以比较的类一般只有两种方法
    1)实现Comparable接口 覆盖它的 int compareTo(Object obj)方法
    2)实现Comparator接口
      

  7.   

    楼主这例子是core java上的吧?书上说的很详细了
    我到想看看你同学没实现怎么就可以用的 源代码
    有的类 自身就重写了compareTo()方法 
    要想用工具类的sort必然要实现比较接口
      

  8.   

    你同学代码不用实现Comparable接口之猜想:1. 传入之数组length == 1
    2. 数组的类型的祖先类实现了Comparable接口.
    3. 调用的是带Comparator参数的重载sort方法.
      

  9.   

    其实不用实现那个接口也可以
    还有另一个接口呢,用来在sort方法后面作为实例传进
    Arrays.sort(object[],Comparetor<T>)
    具体的,有点忘了
      

  10.   

    Arrays类的sort()方法所处理的对象所属的类必须是实现了Comparable接口的