[Read Effective Java] Kapitel 3 Punkt 12 "Berücksichtigung der Implementierung von Comparable"

Erwägen Sie die Implementierung von Comparable

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.

Beispielcode

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

[Read Effective Java] Kapitel 3 Punkt 12 "Berücksichtigung der Implementierung von Comparable"
[Read Effective Java] Kapitel 2 Punkt 7 "Vermeiden Sie Finalizer"
[Read Effective Java] Kapitel 2 Punkt 5 "Vermeiden Sie die Erstellung unnötiger Objekte"
[Read Effective Java] Kapitel 3 Punkt 10 "Immer toString überschreiben"
[Read Effective Java] Kapitel 2 Punkt 1 "Betrachten Sie statische Factory-Methoden anstelle von Konstruktoren"
[Read Effective Java] Kapitel 2 Punkt 6 "Veraltete Objektreferenzen entfernen"
Effektives Java Kapitel 2
[Read Effective Java] Kapitel 2 Punkt 4 "Unmöglichkeit der Instanziierung mit privatem Konstruktor erzwingen"
Effektives Java Kapitel 6 34-35
[Read Effective Java] Kapitel 3 Punkt 9 "Wenn Sie equals überschreiben, überschreiben Sie immer hashCode"
Effektives Java Kapitel 4 15-22
Effektives Java Kapitel 3
[Read Effective Java] Kapitel 2 Punkt 2 "Betrachten Sie einen Builder, wenn Sie mit einer großen Anzahl von Konstruktorparametern konfrontiert werden."
[Read Effective Java] Kapitel 3 Punkt 8 "Wenn Sie gleich überschreiben, befolgen Sie den allgemeinen Vertrag"
[Read Effective Java] Kapitel 2 Punkt 3 "Singleton-Eigenschaften mit privatem Konstruktor oder Aufzählungstyp erzwingen"
[Java] Implementierung des Faistel-Netzwerks
Java-Implementierung von Tri-Tree
Effektive Java 3rd Edition Kapitel 5 Generika
Effektive Java 3rd Edition Kapitel 8 Methoden
Implementierung einer ähnlichen Funktion in Java
Implementierung der Klonmethode für Java Record
Implementierung von DBlayer in Java (RDB, MySQL)
Effektives Java 3rd Edition Kapitel 9 Programm Allgemein
Effektive Java 3rd Edition Kapitel 6 Aufzählung und Anmerkungen
Benötigen Sie eine speicherbewusste Implementierung von Java?
Effektive Java 3rd Edition Kapitel 4 Klassen und Schnittstellen
Effektive Java 3rd Edition Kapitel 7 Lambda und Stream
[JQuery] Implementierungsverfahren der AutoComplete-Funktion [Java / Spring]
[Java / Kotlin] Ändern Sie die Größe unter Berücksichtigung der Ausrichtung des Bildes