Différence entre Comparable et Comparator en Java

Auteur: Laura McKinney
Date De Création: 1 Avril 2021
Date De Mise À Jour: 15 Peut 2024
Anonim
Différence entre Comparable et Comparator en Java - La Technologie
Différence entre Comparable et Comparator en Java - La Technologie

Contenu

Comparable et Comparator sont les interfaces génériques en Java utilisées pour comparer les éléments de données des objets. L’interface Comparable est présente dans le package java.lang et l’interface Comparator dans le package java.util. La différence fondamentale entre les interfaces Comparable et Comparator est que l'interface Comparable fournit la séquence de tri unique, tandis que l'interface Comparator fournit les séquences de tri multiples. Il existe d’autres différences entre les interfaces Comparable et Comparator que nous étudierons dans le tableau de comparaison.


  1. Tableau de comparaison
  2. Définition
  3. Différences Clés
  4. Conclusion

Tableau de comparaison

Base de comparaisonComparableComparateur
De base L'interface Comparable ne permet qu'une seule séquence de tri.L'interface de comparateur permet plusieurs séquences de tri.
Paquets L’interface Comparable est présente dans le package java.lang.L'interface de comparateur est présente dans le package java.util.
Les méthodes L'interface comparable ne contient qu'une seule méthode
public int compareTo (Object obj);
L'interface de comparateur contient deux méthodes
public int compare (Object obj1, Object obj2)
boolean equals (Object obj)
la mise en oeuvreUne interface comparable est implémentée par la classe dont les objets doivent être comparés.L'interface de comparateur est implémentée par une classe sperate à la place de la classe dont les objets doivent être comparés.
Comparaison La méthode compareTo (Object obj) compare l'objet utilisé pour invoquer la méthode avec l'objet spécifié transmis à la méthode.La méthode de comparaison (Object obj1, Object obj2) compare les deux objets spécifiés transmis à la méthode.
Liste / TableauLorsqu'une liste d'objet de type Comparable doit être comparée, la classe Collection fournit une méthode, à savoir Collections.sort (List lst).Lorsqu'une liste d'objets de type Comparable doit être comparée, la classe Collection fournit un procédé, à savoir:
Collections.sort (Liste, Comparateur).


Définition de comparable

Comparable est une interface disponible dans le package java.lang. Une classe implémente l'interface de comparaison pour trier son objet dans l'ordre naturel. Les objets sont triés dans un ordre naturel, ce qui signifie que les objets sont comparés par leurs valeurs ASCII. Les classes qui implémentent l'interface Comparable sont les classes Byte, Character, Double, Float, Long, Short, String et Integer. Même les classes Date et Calander implémentent également l'interface Comparable.

L'interface Comparable contient une seule méthode, CompareTo (Object obj). Cette méthode compare l'objet utilisé pour invoquer la méthode avec l'objet spécifié dans le paramètre. La syntaxe de la méthode est la suivante:

public int compareTo (Object obj);

La méthode CompareTo (Object obj) return 0, lorsque l'objet comparé par la méthode contient la même valeur, il retourne -ve valeur si l'objet appelant est plus petit que l'objet spécifié et renvoie + ve value si l'objet appelant a une valeur supérieure à celle de l'objet spécifié. La classe Collections fournit une méthode de tri pour trier les éléments de la liste. Les éléments list (et array) de type Comparable peuvent être triés à l'aide de la méthode «Collections.sort (List lst)».


Définition de comparateur

Le comparateur est une interface disponible dans le package java.util. L'interface Comparator n'est pas implémentée sur la classe dont les objets doivent être comparés. Une classe séparée implémente l'interface Comparator de sorte que la logique de tri soit appliquée à chaque élément de données de l'objet d'une classe différente. Le comparateur contient deux méthodes comme suit:

public int compare (Object obj1, Object obj2) et boolean égal (Object obj)

La méthode compare () ci-dessus compare le premier objet obj1 au deuxième objet obj2. Le retour de la méthode compare () 0 lorsque l'objet comparé par la méthode contient la même valeur, il retourne -ve valeur si l'objet obj1 est plus petit que l'objet obj2 et renvoie + ve value si l'objet obj1 a une valeur supérieure à celle de l'objet obj2. La méthode equals () vérifie si l'objet spécifié est égal à l'objet appelant. La méthode equals () return vrai si les deux objets comparés sont égaux sinon il retourne faux. La classe Collections fournit la méthode de tri des éléments de type liste et comparateur. Les éléments de liste des types de comparateur sont triés selon la méthode Collections.sort (List, Comparator).

  1. L'interface comparable permet une séquence de tri unique, ce qui signifie que vous ne pouvez comparer qu'un seul élément de données de l'objet dans la méthode compareTo (). L'interface de Comparateur permet plusieurs séquences de tri vous permettant de comparer plusieurs éléments de données de l'objet.
  2. L'interface Comparable est implémentée par la classe dont les objets doivent être comparés car la logique de tri est définie dans la même classe. D'autre part, l'interface de comparaison n'est pas implémentée par la classe dont les objets doivent être comparés car la logique de tri est définie dans les classes séparées, chaque classe définissant le tri sur un seul élément de données de l'objet et ces classes de définition implémentant l'interface de comparaison. .
  3. L’interface Comparable se trouve dans le package java.lang, tandis que l’interface Comparator se trouve dans le package java.util.
  4. L'interface Comparable déclare seulement une méthode qui est compareTo (Object obj), tandis que l'interface Comparator déclare deux méthodes qui sont compare (Object obj1, Object obj2) et égal à (Object obj).
  5. La méthode compareTo (Object obj) de Comparable compare l'objet invoquant la méthode à l'objet spécifié transmis à la méthode, tandis que la méthode compare (Object obj1, Object obj2) de Comparator compare les objets obj1 à obj2 transmis à la méthode.
  6. La classe Collections fournit une méthode de tri «Collections.sort (List lst)» pour trier les objets du type Comparable. La classe Collections fournit la méthode de tri Collections.sort (List, Comparator) pour trier les objets de type Comparator.

Conclusion:

Si vous souhaitez trier les objets dans l'ordre naturel, vous pouvez utiliser l'interface comparable, sinon vous souhaitez trier les objets en fonction de n'importe quel attribut, puis l'interface Comparateur est utilisée.