Unterschied Comparable und Comparator

sh33p

Bekanntes Mitglied
Moin,

ich habe schon ein wenig gegooglet, finde aber irgendwie keine befriedigende Antwort für mich.
Bei Comparable muss ich eben das Interface implementieren und die Methode compareTo überschreiben..
Haben beide Varianten die selbe Funktionalität?Wann ist es sinnvoller welche zu verwenden?
 
Galileo Computing :: Java ist auch eine Insel (8. Auflage) – 12.4 Vergleichen von Objekten

* Comparable: Implementiert eine Klasse Comparable, so können sich die Objekte selbst mit anderen Objekten vergleichen. Da die Klassen im Allgemeinen nur ein Sortierkriterium implementieren, wird hierüber eine so genannte natürliche Ordnung (engl. natural ordering) realisiert.

* Comparator: Eine implementierende Klasse, die sich Comparator nennt, nimmt zwei Objekte an und vergleicht sie. Ein Comparator für Räume könnte zum Beispiel nach der Anzahl der Personen oder auch nach der Größe in Quadratmetern vergleichen; die Implementierung von Comparable wäre nicht sinnvoll, weil hier nur ein Kriterium natürlich umgesetzt werden kann, ein Raum aber nicht die Ordnung hat.

Zusammenfassend lässt sich sagen: Während Comparable üblicherweise nur ein Sortierkriterium umsetzt, kann es viele Extraklassen vom Typ Comparator geben, die jeweils unterschiedliche Ordnungen definieren.

+ noch mehr zum Lesen findest du dort!
 

Zurück
Oben