All Packages Class Hierarchy This Package Previous Next Index
Lists (and arrays) of objects that implement this interface can be sorted automatically by Collections.sort (and Arrays.sort). Objects that implement this interface can be used as keys in SortedMaps or elements in SortedSets, without the need to specify a Comparator.
A class's natural ordering is said to be total if and only if e1.compareTo(e2)==0 implies that e1.equals(e2) for every e1 and e2 of class C. A partial ordering that is not total is said to be strictly partial.
Virtually all Java core classes that implement Comparable have natural orderings that are total. One Java core class whose natural ordering is strictly partial is java.math.BigDecimal. This is mentioned here because some APIs that call for Comparable objects (such as SortedSet and SortedMap) will behave differently depending on whether the objects' natural ordering is total or strictly partial.
public abstract int compareTo(Object o)
The implementor must ensure sgn(x.compareTo(y)) == -sgn(y.compareTo(x)) for all x and y. (This implies that x.compareTo(y) must throw an exception iff y.compareTo(x) throws an exception.)
The implementor must also ensure that the relation is transitive: (x.compareTo(y)>0 && y.compareTo(z)>0) implies x.compareTo(z)>0.
The implementer must also ensure that x.equals(y) implies that x.compareTo(y)==0. Note that the converse is not necessarily true (e.g., BigDecimal).
Finally, the implementer must ensure that x.compareTo(y)==0 implies that sgn(x.compareTo(z)) == sgn(y.compareTo(z)), for all z.
All Packages Class Hierarchy This Package Previous Next Index