Je suis en train de passer outre comparable thusly:java mettre en œuvre comparer sur deux éléments
public int compareTo(Object other) {
if(other.getlength() > this.getlength()){
return 1;
} else if (other.getlength() < this.getlength()){
return -1;
} else {
if (other.getVal() > this.getVal()){
return 1;
} else {
return -1;
}
}
}
Ce que je veux arriver, est la liste à trier sur la longueur, puis si la longueur est la même, Je veux que ces mêmes éléments soient triés (en place) sur leurs valeurs. Mais ma mise en œuvre ne fonctionne pas correctement. Quelqu'un peut-il voir ce que je fais mal?
Mes résultats sont les suivants:
a b = 3
a b c = 1
a b c = 1
a b = 2
a b = 1
Les résultats que je veux sont:
a b c = 1
a b c = 1
a b = 3
a b = 2
a b = 1
Que faire si la longueur et Val sont les mêmes? Vous ne retournez jamais 0. –
Je ne comprends pas votre question: (( –
J'ai essayé d'avoir autre chose, retourner 0 dans la boucle else, c'est-à-dire si other.getVal() == this.getVal() alors il retournera 0, mais les résultats sont les mêmes – Neutralise