Vergleichbar vs. Vergleicher: Unterschied zwischen Vergleichbar und Vergleicher
Veröffentlicht: 2020-12-30Inhaltsverzeichnis
Vergleichbar und Vergleicher: Ein Überblick
Comparable und Comparator sind beides Schnittstellen in der Programmiersprache Java, um das Verhalten zu bestimmen, in dem Klassen implementiert werden. Während Comparable für Objekte verwendet wird, die natürlich geordnet sind, implementiert die Comparator-Schnittstelle die Sortierung, indem sie die Attribute eines Objekts berücksichtigt. Darüber hinaus berücksichtigt die Comparator-Sortierung Objekte zweier verschiedener Klassen, und Comparable vergleicht Objekte unter Verwendung der „this“-Referenz.
Nachdem wir nun das Grundprinzip festgelegt haben, nach dem beide Schnittstellen funktionieren, wollen wir uns die Unterschiede zwischen den beiden ansehen.
Unterschied zwischen vergleichbar und Vergleicher
Methode der Sortierung
Vergleichbar
Es verwendet die Funktion CompareTo() zum Sortieren. Dies ist die einzige Methode, die in der vergleichbaren Sortierschnittstelle vorhanden ist.
CompareTo(Object O) nimmt als Argument ein Objekt und vergleicht es mit einem anderen des gleichen Typs. Wenn ein Objekt ein String ist, können Sie es nur mit einem anderen Objekt desselben Typs vergleichen. Das gleiche gilt für ein int-Objekt und so weiter. CompareTo() gibt basierend auf dem Ergebnis der Sortierung einen negativen, positiven oder null ganzzahligen Wert zurück.
Komparator
Es gibt zwei Methoden, um Elemente in Comparator zu sortieren: Compare() und equals().
Compare(Object O1, Object O2) berücksichtigt zwei Argumente als Eingabe und liefert die gewünschte Ausgabe. Es gibt eine Ganzzahl zurück, um anzugeben, wie das erste Argument mit dem zweiten vergleicht.

- Wenn O1 kleiner als O2 ist, wird eine negative Ganzzahl zurückgegeben.
- Wenn O1 größer als O2 ist, wird eine positive Ganzzahl zurückgegeben.
- Wenn O1 gleich O2 ist, wird 0 zurückgegeben.
equals(Object) berücksichtigt ein Objekt als Eingabe und vergleicht es mit dem Komparator. Es gibt True zurück, wenn das Objekt gleich dem Comparator ist. Es stellt auch sicher, dass sich die Reihenfolge nicht ändert.
Paket verwendet
Vergleichbar
Es existiert im Paket java.lang von Java.
Komparator
Es ist im Paket java.util von Java enthalten.

Bestellung und Klasse
Vergleichbar
- Es berücksichtigt Objekte, die einer natürlichen Ordnung folgen, dh die Tendenz haben, sich selbst zu sortieren. Zum Beispiel alphabetische Reihenfolge oder numerische Reihenfolge bei Namen, Preis, Gehalt, Rollennummer, Alter usw.
- Wichtig ist auch, dass beide Objekte derselben Klasse angehören.
- Vergleichbare Schnittstelle vergleicht „diese“ Referenz mit dem angegebenen Objekt.
- Die Sortierung nach Comparable wirkt sich auf die eigentliche Klasse aus.
Komparator
- Diese Schnittstelle wird hauptsächlich zum Sortieren von Attributen bestimmter Objekte verwendet. Sie müssen keine natürliche Ordnung haben; es kann besonders angefertigt werden.
- Die Sortierlogik muss sich in getrennten Klassen befinden, um die Attribute der Objekte der beiden betrachteten Klassen zu vergleichen.
- Die tatsächliche Klasse bleibt davon unberührt.
Sequenzen und Sammlungen
Vergleichbar
- Es unterstützt nur einzelne Sortierfolgen. Dies bedeutet, dass Sie nur ein Element oder Attribut einer Sammlung berücksichtigen können, z. B. eine Rollennummer, ein Alter oder einen Rang.
- Zum Sortieren einer Sammlung von Objekten, Arrays oder Listen können Sie Collection verwenden. sort(List) oder Arrays. Sortierliste). Dadurch werden die Objekte in ihre natürliche Ordnung gebracht .
Komparator
- Es unterstützt mehrere Sortierfolgen. Dies bedeutet, dass Sie mehrere Elemente oder Attribute einer Sammlung berücksichtigen können, z. B. Rollennummer, Alter und Rang.
- Sie können ein collection.sort(list, comparator) verwenden, um eine Sammlung zu sortieren.
Hier ist eine Zusammenfassung aller Unterschiede zwischen Comparable und Comparator

| Vergleichbar | Komparator |
| Paket | |
| Java.lang | Java.util |
| Methode der Sortierung | |
| vergleichen mit() | vergleichen() |
| Bestellung | |
| Natürliche Ordnung | Kundenspezifische Bestellung |
| Art des Objekts | |
| Vergleichsobjekte müssen vom gleichen Typ sein | Es werden Objekte unterschiedlicher Klassen betrachtet |
| Auswirkung auf die Klasse | |
| Klasse wird modifiziert | Hat keinen Einfluss auf die Klasse |
| Sortierreihenfolge | |
| Einzelne Sortierfolge | Mehrfache Sortierreihenfolge |
Melden Sie sich für Softwareentwicklungskurse an den besten Universitäten der Welt an. Verdienen Sie Executive PG-Programme, Advanced Certificate-Programme oder Master-Programme, um Ihre Karriere zu beschleunigen.
Dinge, die Sie bei der Verwendung von Comparable und Comparator in Java beachten sollten
- Die Vergleichsschnittstelle ist diejenige, die Sie wählen sollten, wenn Sie verkaufen, um einen Standardvergleich für eine bestimmte Klasse durchzuführen.
- Komparator ermöglicht die Verwendung von Lambda.
- Sie können die Methode CompareTo() verwenden, um sowohl Comparator als auch Comparable zu implementieren.
- Die Komparatorschnittstelle wird empfohlen, wenn Sie nach Flexibilität beim Sortieren suchen
Fazit
In den meisten realen Szenarien haben wir beim Sortieren normalerweise eine Vielzahl von Parametern im Hinterkopf. Da vergleichbare Ergebnisse in der Standardsortierung verwendet werden und nicht dynamisch geändert werden können, ist es weniger praktisch als Comparator, mit dem Sie verschiedene Sortiermethoden an Ihre Anforderungen anpassen und auswählen können. Allein aus diesem Grund findet Comparator mehr praktische Anwendungen als Comparable.
Lesen: Einige interessante Java-Projekte zum Ausprobieren
Wenn Sie mehr über Java und Full-Stack-Entwicklung erfahren möchten, schauen Sie sich das Executive PG-Programm in Full-Stack-Softwareentwicklung von upGrad & IIIT-B an, das für Berufstätige konzipiert ist und mehr als 500 Stunden strenge Schulungen, mehr als 9 Projekte, und Aufgaben, IIIT-B-Alumni-Status, praktische praktische Abschlussprojekte und Arbeitsunterstützung bei Top-Unternehmen.
Was sind Schnittstellen in Programmiersprachen?
Ist das Erlernen von Java einfach?
Java führt ein objektorientiertes Programmierparadigma ein, das es selbst den unerfahrensten Java-Entwicklern ermöglicht, wie ein erfahrener Entwickler zu denken und Programme zu erstellen. Java ist aus den heute ebenfalls weit verbreiteten Programmiersprachen C und C++ hervorgegangen. Obwohl Java in Bezug auf die Funktionalität einige Ähnlichkeiten mit C und C++ aufweist, hat es sich zu einer viel benutzerfreundlicheren Sprache entwickelt. Da die objektorientierte Programmierung es einfach macht, bestehenden Code zu warten und zu ändern, können selbst unerfahrene Programmierer mit der Arbeit an Unternehmensprojekten beginnen. Neue Entwickler werden weniger wahrscheinlich auf unvorhergesehene Laufzeitfehler stoßen, da Java vor der Ausführung auf Fehler überprüft wird. Java zwingt Programmierer dazu, alle Codeelemente korrekt anzugeben, wodurch die Wahrscheinlichkeit von Fehlern verringert wird, wenn Anwendungen wachsen.
Warum ist Sortieren in Java notwendig?
Sortieren bezieht sich auf eine Reihe von Techniken zum Neuanordnen der Positionen von Elementen in einem Array, sodass sie alle in aufsteigender oder absteigender Reihenfolge sind. Ein anständiger Sortieralgorithmus muss auch sicherstellen, dass Elemente mit demselben Wert in derselben Reihenfolge im sortierten Array verbleiben. Das Sortieren ist erforderlich, um Datenstrukturen und Algorithmen in der Tiefe zu verstehen. Java als Programmiersprache ist außerordentlich vielseitig und kann zur Implementierung einer Reihe von Sortieralgorithmen verwendet werden. Die meisten dieser Algorithmen sind ziemlich vielseitig und können sowohl rekursiv als auch iterativ implementiert werden.
