Im Gegensatz zu anderen Methoden wird die compareTo-Methode in Object nicht deklariert. Um genau zu sein, ist die compareTo-Methode die einzige Methode in der Compareable-Schnittstelle. Wenn Sie eine Wertklasse schreiben, die eine eindeutig natürliche Reihenfolge aufweist, z. B. alphabetisch, numerisch oder chronologisch, können Sie von einem geringen Aufwand profitieren. Implementieren Sie also Comparable.
public int compareTo(PhoneNumber pn) {
//Vorwahlen vergleichen
if (areaCode < pn.areaCode)
return -1;
if (areaCode > pn.areaCode)
return 1;
//Die Vorwahlen sind gleich und vergleichen die erste Hälfte der Vorwahl
if (prefix < pn.prefix)
return -1;
if (prefix > pn.prefix)
return 1;
//Die Vorwahl und die erste Hälfte der Vorwahl sind gleich, und die zweite Hälfte der Vorwahl wird verglichen.
if (lineNumber < pn.lineNumber)
return -1;
if (lineNumber > pn.lineNumber)
return 1;
return 0; //Alle Felder sind gleich
}
Recommended Posts