java.lang.Object | +--java.lang.Comparable
int | compareTo(java.lang.Object o)Compares this object with another, and returns a numerical result based on the comparison. |
public int compareTo(java.lang.Object o)o1.compareTo(o2) <op> 0, where op
is one of <, <=, =, !=, >, or >=.
You must make sure that the comparison is mutual, ie.
sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) (where sgn() is
defined as -1, 0, or 1 based on the sign). This includes throwing an
exception in either direction if the two are not comparable; hence,
compareTo(null) should always throw an Exception.
You should also ensure transitivity, in two forms:
x.compareTo(y) > 0 && y.compareTo(z) > 0 implies
x.compareTo(z) > 0; and x.compareTo(y) == 0
implies x.compareTo(z) == y.compareTo(z).
o - the object to be comparedNullPointerException - if o is nullClassCastException - if o cannot be compared
Lists, arrays, and sets of objects that implement this interface can be sorted automatically, without the need for an explicit Comparator. Note that
e1.compareTo(null)should throw an Exception; as should comparison between incompatible classes.