考虑实现Comparable接口

考虑实现Comparable接口

概述

compareTo方法并没有在Object中声明,但它是Comparable接口中唯一的方法,不仅允许进行简单的同等性比较,而且还允许进行顺序比较。

建议

一旦类实现了Comparable接口,它可以跟许多泛型算法进行协作。在Java平台类库中的所有值类都实现了Comparable接口。

  1. 实现者必须确保所有的x和y都满足sgn(x.compareTo(y)) == -sgn(y.compareTo(x));
  2. 确保比较关系可传递:x.compareTo(y) > 0 && y.compareTo(z) > 0,那么x.compareTo(z)>0为true;
  3. x.compareTo(y) ==0 意味着所有z都满足sgn(x.compareTo(z)) == sgn(y.compareTo(z))

另外,强烈建议:

1
(x.compareTo(y)==0) == (x.equals(y))