创建一个Treeset对象,并在其中添加一些员工对象(employee)其姓名和工资分别为:张三8000,李四 6000 王五5600.最后按工资大小,降序输出。
各位大神,帮忙实现Camparable接口啊 谢谢了

解决方案 »

  1.   

    Camparable(employee e1,employee e2{
    if(e1.getSalary>e2.getSalary){
    return 1;
    }else{
    rerurn 0;
    }
    }
    大体上是这样的,具体记不清了,我在网吧,没那个环境,要不帮你调试下。
      

  2.   

    public class xxx implements Comparator<employee>{
    public int compare(employee e1, employee e2) {
    return e1.getSalary().compareTo(e2.getSalary());
    }}
      

  3.   

    API文档:
    可以实现接口Camparable里面的compare()方法进行比较
    compare
    int compare(T o1,
                T o2)比较用来排序的两个参数。根据第一个参数小于、等于或大于第二个参数分别返回负整数、零或正整数。
    在前面的描述中,符号 sgn(expression) 表示 signum 数学函数,根据 expression 的值为负数、0 还是正数,该函数分别返回 -1、0 或 1。实现程序必须确保对于所有的 x 和 y 而言,都存在 sgn(compare(x, y)) == -sgn(compare(y, x))。(这意味着当且仅当 compare(y, x) 抛出异常时 compare(x, y) 才必须抛出异常。)实现程序还必须确保关系是可传递的:((compare(x, y)>0) && (compare(y, z)>0)) 意味着 compare(x, z)>0。最后,实现程序必须确保 compare(x, y)==0 意味着对于所有的 z 而言,都存在 sgn(compare(x, z))==sgn(compare(y, z))。虽然这种情况很普遍,但并不 严格要求 (compare(x, y)==0) == (x.equals(y))。一般说来,任何违背这个条件的 Comparator 都应该清楚地指出这一事实。推荐的语言是“注意:此 Comparator 强行进行与 equals 不一致的排序。” 
    参数:
    o1 - 要比较的第一个对象。
    o2 - 要比较的第二个对象。 
      

  4.   


    public class Employee implements Comparable<Employee>
    {
    ...... public int compareTo(Employee o)
    {
    return this.getSalary()-o.getSalary();
    }

    ......
    }
      

  5.   


    TreeSet 只接受Comparator 类