Bonjour,
Qaund est ce que je dois utiliser l'interface comparable ou l'interface comparator?
Veuillez me donner un exemple concret!
Merci.
Version imprimable
Bonjour,
Qaund est ce que je dois utiliser l'interface comparable ou l'interface comparator?
Veuillez me donner un exemple concret!
Merci.
Comparator quand tu veux implémenter un comparateur.
Comparable quand tu veux définir un ordre naturel à un type. A utiliser avec prudence et parcimonie voir même à éviter au maximum.
Merci pour ta réponse,
Est ce que je peux avoir un cas concret qui montre ce que tu viens d'expliquer :ccool:.
Merci.
Si tu prends par exemple java.math.BigDecimal qui implémente Comparable.
L'ordre naturel de comparaison sera l'ordre croissant : 0, 1, 2 , 3, 4...
Mais rien ne t’empêche de faire autant de Comparator que tu veux, avec des ordres différents selon ton besoin. Ces ordres peuvent être identiques à l'ordre naturel ou différents.
Un exemple qui me semble plus parlant.
C'est la classe "Personne".
Celle-ci implémente Comparable, afin de trier les personnes dans une listes.
Sachant qu'un étudiant a toujours une date de naissance. L'ordre est donnée en fonction de l'âge.
Le jour des résultats, la classe "Prof" trie les "Personne"s en fonction de leur note. Un "Comparator".
Plus tard, un chef d'entreprise, fera la même chose, mais en fonction du salaire. Le manageur en fonction de la "Productivité".
Un Comparator est généralement, l'une des possibilités pour trier une listes. Comparable est la plus commune... ou la seule...
Cordialement,
Patrick Koldziejczyk.