关于compareTo()

关于compareTo()

在方法中this.getSalary()和o.getSalary()​为什么这样设置两个

是分先后吧,谁先被取出?


public int compareTo(Employee o){
        float salary1=this.getSalary();
        float salary2=o.getSalary();
        int n=new Double(salary2-salary1).intValue();
        return n;
    }

正在回答

登陆购买课程后可参与讨论,去登陆

1回答

同学你好,compareTo(Employee o)方法是当前对象与Employee o对象进行比较。getSalary()方法是获得salary值。练习中要求按工资对员工进行降序排序,所以这里要获得salary工资值。

this.getSalary()是获得当前对象的salary值,o.getSalary()是获得Employee o对象的salary值。二者不分前后。

祝学习愉快~

  • qq_慕神0589333 提问者 #1
    当前对象不在Employee o里面,那是指Collections.sort()吗
    2021-02-27 15:18:42
  • 好帮手慕阿慧 回复 提问者 qq_慕神0589333 #2
    同学你好,Collections.sort()底层会调用compareTo()方法,对集合中每个对象进行比较。
    例如代码:
    Employee e1 = new Employee("emp001", "张三", 1800.0f);
    Employee e2 = new Employee("emp002", "李四", 2500.0f);
    e1.compareTo(e2);

    其中,e1调用了compareTo方法,那么当前对象就是e1。

    祝学习愉快~

    2021-02-27 18:36:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师