...
Wiki Markup |
---|
The general contract for {{compareTo()}} from Java SE 6 API \[[API 2006|AA. References#API 06]] (numbering added) states that |
- The implementor must ensure
sgn(x.compareTo(y)) == -sgn(y.compareTo(x))
for allx
andy
. (This implies thatx.compareTo(y)
must throw an exception ify.compareTo(x)
throws an exception.)- The implementor must also ensure that the relation is transitive:
(x.compareTo(y) > 0 && y.compareTo(z) > 0)
impliesx.compareTo(z) > 0
.- Finally, the implementor must ensure that
x.compareTo(y) == 0
implies thatsgn(x.compareTo(z)) == sgn(y.compareTo(z))
for allz
.- It is strongly recommended, but not strictly required, that
(x.compareTo(y) == 0) == x.equals(y)
. Generally speaking, any class that implements the Comparable interface and violates this condition should clearly indicate this fact. The recommended language is Note: this class has a natural ordering that is inconsistent with equals.In the foregoing description, the notation
sgn(expression)
designates the mathematical signum function, which is defined to return either -1, 0, or 1 depending on whether the value of the expression is negative, zero or positive.
...
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="6837fb0df6a2194e-04be7a5c-41d14ae6-a50d9ad0-8e16bfccc285d6303bc2915c"><ac:plain-text-body><![CDATA[ | [[API 2006 | AA. References#API 06]] | [Method | http://java.sun.com/javase/6/docs/api/java/lang/Comparable.html#compareTo(java.lang.Object)] | ]]></ac:plain-text-body></ac:structured-macro> |
<ac:structured-macro ac:name="unmigrated-wiki-markup" ac:schema-version="1" ac:macro-id="b1f3e3162c6fcea9-b4827471-49ee4885-886298f9-0b13a578c227190cea168ab0"><ac:plain-text-body><![CDATA[ | [[JLS 2005 | AA. References#JLS 05]] |
| ]]></ac:plain-text-body></ac:structured-macro> |
...