Contrairement aux autres méthodes, la méthode compareTo n'est pas déclarée dans Object. Pour être précis, la méthode compareTo est la seule méthode de l'interface Comparable. Si vous écrivez une classe de valeur qui a un ordre clairement naturel, tel que alphabétique, numérique ou chronologique, vous pouvez bénéficier d'un peu d'effort, alors implémentez Comparable.
public int compareTo(PhoneNumber pn) {
//Comparer les indicatifs régionaux
if (areaCode < pn.areaCode)
return -1;
if (areaCode > pn.areaCode)
return 1;
//Les indicatifs régionaux sont égaux et comparent la première moitié du code de ville
if (prefix < pn.prefix)
return -1;
if (prefix > pn.prefix)
return 1;
//L'indicatif régional et la première moitié de l'indicatif de ville sont égaux, et la seconde moitié de l'indicatif de ville est comparée.
if (lineNumber < pn.lineNumber)
return -1;
if (lineNumber > pn.lineNumber)
return 1;
return 0; //Tous les champs sont égaux
}
Recommended Posts