public class EmployeeSortTest {
public static void main(final String[] args) {
final 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);
for (final Employee e : staff) {
System.out.println("name=" + e.getName() + ",salary=" + e.getSalary());
}
}
}
class Employee implements Comparable<Employee> {
public Employee(final String n, final double s) {
name = n;
salary = s;
}
public String getName() {
return name;
}
public double getSalary() {
return salary;
}
public void raiseSalary(final double byPercent) {
final double raise = salary * byPercent / 100;
salary += raise;
}
@Override
public int compareTo(final Employee other) {
if (salary < other.salary) {
return -1;
}
if (salary > other.salary) {
return 1;
}
return 0;
}
private final String name;
private double salary;
}
Cay S. Horstmann 氏と彼の同僚であるCore Java, Volume I: Fundamentalsによって書かれた本から学ぶように、私は Java の初心者です。245 ページの「employeesorttest.java」の例。
私が得ることができないのは方法compareTo
です。出力はどのように変化しますか?このメソッドは、0、-1、および 1 の 3 つの数値のみを返します。位置やオブジェクトは から変更されませんでしたstaff
。また、コードarrays.sort(staff)
が機能する場合、なぜインターフェイスを使用する必要があるのでしょうか?
両方のコードの間に何らかの関係があるに違いないことはわかっています。