J'ai trouvé cette définition de classe:Comment sont liés hashcode() et compareTo()?
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));
}
Pourriez-vous s'il vous plaît me expliquer, pourquoi l'utilisation développeur hashCode() dans compareTo()? Comment sont-ils liés? N'est-ce pas un mauvais moyen?
Ils ne sont pas liés. C'est la mauvaise façon de le faire. – 4castle
Je pense que le code que vous avez trouvé est assez horrible. – GhostCat