Comparator.compare() and Comparable.compareTo() implementations.
The following cases are reported:
0 for the same elements. Such a comparison method violates the contract
and can produce unpredictable results when equal elements are encountered. In particular,
sorting may fail with an exception on some data.Integer.MIN_VALUE. While allowed by the contract, it may be error-prone, as some call sites
may incorrectly try to invert the return value of the comparison method using the unary minus operator.
The negated value of Integer.MIN_VALUE is Integer.MIN_VALUE.
Example:
Comparator<String> lambda =
(a, b) -> a.length() > b.length()
? 0
: Math.random() > 0.5 ? -1 : 1;