|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
public interface Comparable
Interface for objects that can be ordering among other objects. The ordering can be total, such that two objects only compare equal if they are also equal by the equals method, or partial such that this is not necessarily true. For example, a case-sensitive dictionary order comparison of Strings is total, but if it is case-insensitive it is partial, because "abc" and "ABC" compare as equal even though "abc".equals("ABC") returns false. However, if you use a partial ordering, it is a good idea to document your class as "inconsistent with equals", because the behavior of your class in a SortedMap will be different than in a HashMap.
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.
Comparator
,
java.util.Collections#sort(java.util.List)
,
java.util.Arrays#sort(Object[])
,
SortedSet
,
SortedMap
,
TreeSet
,
TreeMap
Method Summary | |
---|---|
int |
compareTo(Object o)
Compares this object with another, and returns a numerical result based on the comparison. |
Method Detail |
---|
int compareTo(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 compared
NullPointerException
- if o is null
ClassCastException
- if o cannot be compared
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |