samuwoo 2015-04-09 15:16 采纳率: 22.2%
浏览 5087

重写 compareTo后,ArrayList.sort可以升序排列,为什么一般不改成降序呢 ?

package interfaces;
import java.util.*;
//实例数组排序:员工数组排序
/**

  • This program demonstrates the use of the Comparable interface.
  • @version 1.30 2004-02-27
  • @author Cay Horstmann
    */
    public class EmployeeSortTest
    {
    public static void main(String[] args)
    {
    Employee[] staff = new Employee[3];

    staff[0] = new Employee("Harry Hacker", 35000);
    staff[1] = new Employee("Carl Cracker", 75000);
    staff[2] = new Employee("Tony Tester", 38000);

    Arrays.sort(staff);//结合重写后的compareTo方法,将类按照工资高低升序排列

    // print out information about all Employee objects
    for (Employee e : staff)
    System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());
    }
    }

class Employee implements Comparable
{
private String name;
private double salary;

public Employee(String n, double s) {
    name = n;
    salary = s;
}

public String getName()
{
return name;
}

public double getSalary()
{
return salary;
}

public void raiseSalary(double byPercent)
{
double raise = salary * byPercent / 100;
salary += raise;
}

/**
* Compares employees by salary
* @param other another Employee object
* @return a negative value if this employee has a lower salary than
* otherObject, 0 if the salaries are the same, a positive value otherwise
*/
public int compareTo(Employee other)
{
if (salary < other.salary) return -1;//if (salary < other.salary) return -1;
if (salary > other.salary) return 1;//if (salary > other.salary) return 1;
return 0; //若上面两句改写成这样,那输出结果就会降序排列,也不会报错,为什么不这样写呢?
}

}

问题在注释中写了

  • 写回答

4条回答 默认 最新

  • 仗剑天涯慰平生 2015-04-09 15:20
    关注

    升序讲叙是完全对称的,从算法角度来说都一样,写哪个可以

    评论

报告相同问题?

悬赏问题

  • ¥15 java 操作 elasticsearch 8.1 实现 索引的重建
  • ¥15 数据可视化Python
  • ¥15 要给毕业设计添加扫码登录的功能!!有偿
  • ¥15 kafka 分区副本增加会导致消息丢失或者不可用吗?
  • ¥15 微信公众号自制会员卡没有收款渠道啊
  • ¥15 stable diffusion
  • ¥100 Jenkins自动化部署—悬赏100元
  • ¥15 关于#python#的问题:求帮写python代码
  • ¥20 MATLAB画图图形出现上下震荡的线条
  • ¥15 关于#windows#的问题:怎么用WIN 11系统的电脑 克隆WIN NT3.51-4.0系统的硬盘