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; //若上面两句改写成这样,那输出结果就会降序排列,也不会报错,为什么不这样写呢?
}
}
问题在注释中写了