Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: got rid of thumbs up

...

The implementor must ensure sgn(x.compareTo(thumbs up)(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(thumbs up) (y) >0 && y.compareTo(z)>0) implies x.compareTo(z)>0.

Finally, the implementor must ensure that x.compareTo(thumbs up) (y) ==0 implies that sgn(x.compareTo(z)) == sgn(y.compareTo(z)), for all z.

It is strongly recommended, but not strictly required that (x.compareTo(thumbs up) (y) ==0) == (x.equals(thumbs up) (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."

...

MET34-EX1: In some situations it may be necessary to violate the condition that (x.compareTo(thumbs up) (y) ==0) == (x.equals(thumbs up) (y) ). However, as this will make an object Comparable that should not be used in most data structures that deal with Comparable objects like TreeSet and TreeMap, it would be better to use a separate method entirely. If compatibility issues demand the use of this non-standard compareTo() method, care should be taken through comments or other means that the object is not used in data structures that expect a standard Comparable.

...