在学习数组时,Arrays类中的sort方法可以对对象数组进行排序但是:
对象所属的类必须实现Comparable接口。
Comparable接口的定义:
java5之后接口可以加上泛型
例:person类age,name,person按年龄排序:
用到的API:
在重写时比较浮点数不能使用相减的技巧,当两个浮点数很接近但又不相等时,它们的差四舍五入后可能为0. 用Double.compare
规定:重写时保证:sgn(x.compareTo(y))+sgn(y.compareTo(x))=0
拓展:如果父类实现comparable接口,子类继承父类override compareTo方法可能出错。
(1)如果不同子类中有不同的含义
(2)如果父类和子类能够比较,把compareTo声明为final(不可继承)