Est-ce que deux objets seront toujours égaux lorsque leur méthode compareTo () renvoie zéro ?
Est-ce que deux objets seront toujours égaux lorsque leur méthode compareTo () renvoie zéro ?

Vidéo: Est-ce que deux objets seront toujours égaux lorsque leur méthode compareTo () renvoie zéro ?

Vidéo: Est-ce que deux objets seront toujours égaux lorsque leur méthode compareTo () renvoie zéro ?
Vidéo: Révision des fondamentaux : equals et hashCode c'est important 2024, Novembre
Anonim

Ce est recommandé que comparer aux seul Retour 0, si un appel à équivaut à au les mêmes objets aurait revenir vrai: comparer aux (e2) == 0 a le même valeur booléenne comme e1. équivaut à (e2) pour tout e1 et e2 de classe C. Notez que null est pas une instance d'aucune classe, et e.

De plus, est-il possible que equals () renvoie false même si le contenu de deux objets est le même ?

4 réponses. En java la méthode public boolean équivaut à ( Objet obj) est hérité de la Objet . Cependant, la mise en œuvre de la méthode telle que définie dans le Objet classe est que le équivaut à méthode sera retourner si et seulement si les deux objets comparés sont les même exemple.

Par la suite, la question est, pourquoi compareTo () devrait être cohérent avec la méthode equals () en Java ? Il en est ainsi parce que l'interface Map est définie en termes de équivaut à opération, mais une carte effectue toutes les comparaisons clés à l'aide de son comparer aux (ou comparer) méthode , donc deux clés qui sont réputées égal par ça méthode sont, du point de vue de la carte triée, égal.

En gardant cela à l'esprit, quelle est la différence entre la méthode == equals () et compareTo () ?

comparer aux : compare deux chaînes lexicographiquement. équivaut à : compare cette chaîne à l'objet spécifié. comparer aux compare deux chaînes par leurs caractères (au même index) et renvoie un entier (positif ou négatif) en conséquence. équivaut à() vérifie si deux objets sont identiques ou non et renvoie un booléen.

Pouvons-nous remplacer la méthode compareTo ?

Remplacer la méthode compareTo Il doit renvoyer un entier négatif (généralement -1), si l'objet déclencheur actuel est inférieur à l'objet passé une , et un entier positif (généralement +1) s'il est supérieur à, et 0 s'il est égal. méthode compareTo devrait lève une exception si l'objet passé a un type incompatible ou null.

Conseillé: