Doublons Possibles:
différence entre les comparer() et compareTo()
Java: Quelle est la différence entre la mise en œuvre Comparable et de Comparaison?Quelles sont les clés de différences entre Comparables et Comparateur.
et qui est privilégié par rapport à l'autre dans ce cas?
Merci
Mise à jour - BONNE LIAISON AVEC l'EXEMPLE!!
http://www.digizol.com/2008/07/java-sorting-comparator-vs-comparable.html
Réponses
Trop de publicités?Lors de votre classe implémente Comparable, la méthode compareTo de la classe est de définir le "naturel" de la commande de cet objet. Cette méthode est tenu par contrat (même si elle n'est pas exigé) afin d'être en ligne avec d'autres méthodes sur un objet, comme un 0 doit toujours être renvoyés pour des objets lorsque l' .equals() comparaisons return true.
Un Comparateur est sa propre définition de la façon de comparer deux objets, et peut être utilisé pour comparer des objets dans une façon qui pourrait ne pas s'aligner avec l'ordre naturel.
Par exemple, les Chaînes sont généralement comparés par ordre alphabétique. Ainsi, la "une".compareTo("b") serait d'utiliser alphabétique des comparaisons. Si vous voulez comparer des Chaînes de longueur, vous aurez besoin de rédiger un personnalisé du comparateur.
En bref, il n'y a pas beaucoup de différence. Ils sont tous les deux extrémités à des moyens similaires. En général de mettre en œuvre comparables pour l'ordre naturel, (ordre naturel définition est évidemment ouverte à l'interprétation), et d'écrire un comparateur pour les autres de tri ou de comparaison des besoins.
Comparator
vous permet de fournir une logique de comparaison personnalisée pour les types sur lesquels vous n'avez aucun contrôle.
Comparable
vous permet de spécifier comment les objets que vous implémentez sont comparés.
Évidemment, si vous n'avez pas le contrôle sur une classe (ou si vous souhaitez fournir plusieurs façons de comparer des objets sur lesquels vous avez le contrôle), utilisez Comparator
.
Sinon, vous pouvez utiliser Comparable
.