lly sort lists of classes that implement this interface.
 <p>
 The order rule must be both transitive (if <code>x.compareTo(y) < 0</code> and
 <code>y.compareTo(z) < 0</code>, then <code>x.compareTo(z) < 0</code> must hold) and
 invertible (the sign of the result of x.compareTo(y) must be equal to the
 negation of the sign of the result of y.compareTo(x) for all combinations of
 x and y).
 <p>
 In addition, it is recommended (but not required) that if and only if the
 result of x.compareTo(y) is zero, then 