27 votes

Pourquoi le comparateur déclare-t-il des égalités ?

L'interface du comparateur possède son propre equals() méthode. Toute classe obtiendra equals() par défaut par le biais de la classe d'objets. Quelle est la nécessité d'avoir equals() à l'intérieur d'une interface ?

0voto

Yogesh Rewale Points 13

Le fait de placer une méthode Object dans une déclaration d'interface permet à Javadoc la signification que doit avoir equals dans les classes qui implémentent l'interface. implémentent l'interface.

0voto

Ahmad Points 1147
Comparator interface have their own equals() method

Tout d'abord, il doit être clair que chaque fois que vous implémentez l'interface Comparable, vous devez fournir à votre programme la possibilité de décider si des objets sont égaux, inférieurs ou supérieurs.

I am quite confuse about have equals() inside Comparator. Any class will get equals() by default through Object class.

L'implémentation de la méthode equals() que nous avons héritée de la classe Object vérifie uniquement si les deux références pointent vers le même objet ou non. Elle n'applique aucune comparaison. C'est vous qui fournirez dans votre classe (ou éventuellement dans votre interface) les critères d'égalité des objets.

Then what is need to have equals() method inside an interface?

Il est évident que chaque fois que vous implémentez des objets plus petits ou plus grands que, vous devez implémenter des objets égaux. Ainsi, plutôt que de vous fier à la méthode par défaut Object equals(), vous devez fournir votre propre logique pour vérifier l'égalité.

-1voto

Surender Thakran Points 654

En equals() méthode en Comparator est fourni pour forcer un utilisateur qui met en œuvre le Comparator pour mettre en œuvre l'interface equals() avec quelques règles et contraintes supplémentaires en plus de celles déjà appliquées aux equals() de Object .

La règle supplémentaire est la suivante :

Cette méthode doit obéir au contrat général de Object.equals(Object) . En outre, cette méthode ne peut renvoyer un résultat positif que si l'objet spécifié est également un comparateur et qu'il impose le même ordre que ce comparateur. Ainsi, comp1.equals(comp2) i sgn(comp1.compare(o1, o2))==sgn(comp2.compare(o1, o2)) f référence d'objet o1 y o2 .

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X