对事物进行比较往往是希望对它们进行排序,因此排序的结果是由比较的结果产生的。而对事物进行比较就需要明确比较的内容是什么。例如某学校择优录取考生,就要比较所有考生的成绩,然后排列出考分的高低,而学生入学之后可能又要根据身高来排列出座位的次序。因此对两个学生进行比较,就必须先要明确到底是比较他们的考试成绩还是比较他们的身高。如果希望对两个类型相同的对象进行比较,也需要在类当中明确定义出比较规则,否则就会因没有比较规则而无法完成比较。
Comparable接口就是用于定义比较规则的接口,一个类如果实现了Comparable接口,就必须实现接口中的compareTo()抽象方法,这个方法专门用来制定比较规则,一个类如果没有实现Comparable接口,Java语言就认为这个类没有制定明确的比较规则,它的对象不能相互比较。如何在compareTo()方法中制定比较规则呢?通常情况下,程序员都是在compareTo()方法中比较两个对象的某些属性,然后根据比较结果按要求返回相应的数值。如果a对象调用自身的compareTo()方法与b对象进行比较,那么比较的语句应该是:
a.compareTo(b);
compareTo()方法的返回值为int型,规则要求:如果经过比较认为a比b小,那么程序员就要让compareTo()方法返回一个负数,而如果a与b相等,则返回0,如果a比b大,返回正数。compareTo()方法就是通过返回值的正负属性反