j'ai un peu chercher sur la différence entre interface comparable et comparator mais j'ai encore mal a comprendre exactement la différence ?
j'ai un peu chercher sur la différence entre interface comparable et comparator mais j'ai encore mal a comprendre exactement la différence ?
Si ta classe Java qui doit être triée est toujours triée de la même manière, tu peux utiliser l'interface comparable.
Celle-ci est à rattacher directement à ta classe java à trier.
Si ta classe implémente cette interface, les méthodes de tri (Collections.sort(l) Java s'appuieront sur la méthode compareTo implémentée de cette interface pour réaliser le tri.
Si par contre, tu as besoin d'avoir différents types de tris pour une même classe : croissant, décroissant, dans un cas avec tels attributs dans un autre cas avec tels autres attributs... il te faut travailler avec l'interface comparator.
Dans ce cas, ton interface n'est pas directement rattachée à ta classe. Il te faut créer une nouvelle classe (ou n nouvelles classes) qui implémente l'interface comparator.
Quand tu auras besoin de faire un tri, tu devras en plus de fournir la liste contenant tes classes à trier fournir ta classe implémentant le comparator (Collections.sort(l, classeComparator).
Suivant le type de tri réalisé, tu utiliseras la classe réalisant la comparaison correspondante.
Arnaud
Afin de résumer un peu cette parfaite explication :
Lorsque l'ont implémente comparable on définit une comparaison naturelle.
Lorsque l'ont implémente un comparator, on définit une comparaison possible.
Souvent on implémente un ensemble de comparator, et dans l'implémentation de comarable on délègue l'appel vers un comparator (ordre par défaut).
http://alaindefrance.wordpress.com
Certifications : SCJP6 - SCWCD5 - SCBCD5 - SCMAD1
SDE at BitTitan
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager