[Lire Java efficace] Chapitre 3 Point 12 "Considérer l'implémentation de Comparable"

Envisagez de mettre en œuvre Comparable

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.

Exemple de code

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

[Lire Java efficace] Chapitre 3 Point 12 "Considérer l'implémentation de Comparable"
[Lire Java efficace] Chapitre 2 Item 7 "Eviter les finaliseurs"
[Lire Java efficace] Chapitre 2 Item 5 "Eviter la création d'objets inutiles"
[Lire Java efficace] Chapitre 3 Item 10 "Always Override toString"
[Lire Java efficace] Chapitre 2 Item 1 "Considérez les méthodes de fabrique statiques plutôt que les constructeurs"
[Lire Java efficace] Chapitre 2 Item 6 "Supprimer les références d'objets obsolètes"
Efficace Java Chapitre 2
[Lire Java efficace] Chapitre 2 Item 4 "Forcer l'impossibilité d'immobilisation avec un constructeur privé"
Effective Java Chapitre 6 34-35
[Lire Java effectif] Chapitre 3 Rubrique 9 "Lors de la substitution d'égaux, toujours remplacer hashCode"
Effective Java Chapitre 4 15-22
Java efficace Chapitre 3
[Lire le Java efficace] Chapitre 2 Item 2 "Considérez un constructeur face à un grand nombre de paramètres de constructeur"
[Lire Java efficace] Chapitre 3 Point 8 "En cas de remplacement égal, suivez le contrat général"
[Lire Java efficace] Chapitre 2 Item 3 "Forcer les caractéristiques de singleton avec un constructeur privé ou un type enum"
[Java] Implémentation du réseau Faistel
Implémentation Java de tri-tree
Efficacité de Java 3rd Edition Chapitre 5 Génériques
Méthodes efficaces du chapitre 8 de Java 3rd Edition
Implémentation d'une fonction similaire en Java
Implémentation de la méthode de clonage pour Java Record
Implémentation de DBlayer en Java (RDB, MySQL)
Effective Java 3rd Edition Chapitre 9 Programme Général
Enum et annotations du chapitre 6 de Java 3rd Edition efficace
Avez-vous besoin d'une implémentation de Java compatible avec la mémoire?
Efficacité de Java 3rd Edition Chapitre 4 Classes et interfaces
Efficace Java 3e édition Chapitre 7 Lambda et Stream
[JQuery] Procédure d'implémentation de la fonction de saisie semi-automatique [Java / Spring]
[Java / Kotlin] Redimensionner en tenant compte de l'orientation de l'image