这个compareTo接口程序没看懂,请帮忙。
下面是书上的一个程序.
import java.util.*;
public class Test
{
public static void main(String[] args)
{
Employee[] staff = new Employee[3];
staff[0] = new Employee("abc", 5000);
staff[1] = new Employee("efg", 2000);
staff[2] = new Employee("opq", 3500);
Arrays.sort(staff);
for(Employee e: staff)
{
System.out.println("name = " + e.getName() + ", and his salary is "+ e.getSalary());
}
}
}
class Employee implements Comparable<Employee>
{
public Employee(String n, double s)
{
name = n;
salary = s;
}
public String getName()
{
return name;
}
public double getSalary()
{
return salary;
}
public int compareTo(Employee other)
{
if(salary < other.salary)
{
return -1;
}
if(salary > other.salary)
{
return 1;
}
return 0;
}
private String name;
private double salary;
}
public int compareTo(Employee other)
{
if(salary < other.salary)
{
return -1;
}
if(salary > other.salary)
{
return 1;
}
return 0;
}
public int compareTo(Employee other)
{
if(salary < other.salary)
{
return -1;
}
if(salary > other.salary)
{
return 1;
}
return 0;
}
public int compareTo(Employee other)
{
if(this.salary < other.salary)
{
return -1;
}
if(this.salary > other.salary)
{
return 1;
}
return 0;
}
return 0;
}
[解决办法]
楼主想要明白compareTo方法,需要了解的知识有这些:
1.Comparable接口
2.this关键字
3.compareTo()方法的参数和返回值意义
如果搞清楚这三点,你肯定就知道原因了。然后你可以再了解一下Comparator这个类,用它可以实现不同的排序方式。当然,是通过内部类实现的。