class TwoTuple28<A,B> implements Comparable {
// ...
public int hashCode() {
int result = 17;
result = result * 37 + first.hashCode();
result = result * 37 + second.hashCode();
return result;
}
public int compareTo(Object o) {
if(!(o instanceof TwoTuple28)) throw new ClassCastException();
TwoTuple28 t = (TwoTuple28)o;
return (this.hashCode() - t.hashCode() < 0) ? -1 :
((this.hashCode() - t.hashCode() > 0 ? 1 : 0));
}
Подскажите пожалуйста, в чем смысл использовать hashCode() в compareTo()? В compareTo() мы же сравниваем содержимое объекта, hashCode() конечно преобразует информацию объекта в хэш-код, но разве есть какое то точное соотношение между разными hashCode(), что бы их можно было использовать в compareTo()?