下面这段代码摘自Java教程,比较第二个参数对象与第一个对象而不是相反。 *方法hireDate()返回表示特定雇员的入职日期的日期对象。
import java.util.*;
public class EmpSort {
static final Comparator<Employee> SENIORITY_ORDER =
new Comparator<Employee>() {
public int compare(Employee e1, Employee e2) {
return e2.hireDate().compareTo(e1.hireDate());
}
};
这里是Java教程的解释:
请注意,Comparator将其第二个参数的入职日期传递给第一个参数而不是相反。原因是最近雇用的员工是最低级别的;按照入职日期排序会将列表按照反向资历顺序排列。
我仍然不明白通过在compareTo
中交换e1和e2可以解决问题的原因。
有进一步的说明吗?
提前致谢。