Comparable und Comparator sind beide Schnittstellen von Java, einer höheren Programmiersprache, die zum Sortieren von Sammlungselementen verwendet wird. Java stellt grundsätzlich diese beiden unterschiedlichen Schnittstellen zum Sortieren der Objekte bereit.
Es gibt viele bemerkenswerte Unterschiede zwischen beiden Schnittstellen, die auf der Grundlage der von ihnen ausgeführten Funktion eine Grenze zwischen beiden bilden.
Key Take Away
- Comparable ist eine Schnittstelle für die natürliche Anordnung von Objekten; Comparator ist ein externes Dienstprogramm zum Vergleichen von Objekten.
- Das Implementieren von Comparable erfordert das Ändern der Klasse der zu vergleichenden Objekte. Ein Komparator kann verwendet werden, ohne die ursprüngliche Klasse zu ändern.
- Comparable erzwingt eine einzelne Standard-Sortiermethode; Comparator ermöglicht mehrere anpassbare Sortieroptionen.
Vergleichbar vs. Vergleicher
Comparable ist eine Schnittstelle in Java, die die Methode „compareTo“ definiert und zum Vergleichen natürlich geordneter Objekte verwendet wird. Es vergleicht Objekte mithilfe der „this“-Referenz. Die Komparatorschnittstelle sortiert Objekte unter Berücksichtigung ihrer Attribute. Es berücksichtigt Objekte zweier verschiedener Klassen.

Comparable ist eine Schnittstelle, die im Lang-Paket der Java-Sprache vorhanden ist und deren Zweck darin besteht, die Sammlungselemente nach nur einem einzigen Attribut wie Alter, Preis, ID, Name usw. zu sortieren.
Es ist in der Lage, sich selbst mit jedem anderen Objekt zu vergleichen. Ein Objekt beliebigen Typs, sei es eine Liste oder ein Array, kann sortiert werden.
Comparator ist eine Schnittstelle, die im Util-Paket der Java-Sprache vorhanden ist und deren Zweck darin besteht, die Sammlungselemente mithilfe mehrerer Attribute gleichzeitig zu sortieren.
Es ist eine separate Klasse und außerhalb des zu vergleichenden Elementtyps. Die Klasse collections stellt eine zweite Sortiermethode bereit, die einen Komparator als Parameter akzeptiert.
Vergleichstabelle
Vergleichsparameter | Vergleichbar | Comparator |
---|---|---|
Sortierart | Es bietet eine einzige Sortierreihenfolge. | Es bietet mehrere Sortierfolgen. |
Klassenänderung | Es modifiziert die eigentliche Klasse. | Die tatsächliche Klasse wird nicht geändert. |
Paketstandort | Es ist im Paket java—lang enthalten. | Es ist in Java vorhanden. util-Paket. |
Methoden | Es hat die Methode CompareTo(). | Es hat die Methode Compare(). |
Sortiermethoden | Collections.sort(List)-Methode. | Collections.sort(List,Comparator)-Methode. |
Was ist vergleichbar?
Wie oben erläutert, handelt es sich bei „comparable“ um eine Schnittstelle der Programmiersprache Java, die im Paket „lang“ enthalten ist und zum Sortieren von Sammlungselementen mithilfe nur eines Attributs verwendet wird. Die vergleichbare Schnittstelle enthält nur eine einzige Methode, nämlich CompareTo().
Das vergleichbare Objekt kann mit den anderen Objekten verglichen werden. Damit die Klasse die Instanzen vergleichen kann, muss die Klasse die Comparable-Schnittstelle implementieren.
Für die Objekte mit natürlicher Ordnung wurde eine vergleichbare Schnittstelle entwickelt. Mit anderen Worten bedeutet dies, dass das zu sortierende Objekt die Reihenfolge haben muss, in der es sortiert werden soll.
Logisch gesehen vergleicht die vergleichbare Schnittstelle „diese“ Referenz mit dem Objekt, das in der Methode erwähnt wird. Wenn eine Klasse die Comparable-Schnittstelle implementiert, kann das Objekt dieser Klasse mithilfe der Sammlungen sortiert werden. sort() oder die Arrays. sort()-Methode.
Die Objekte werden automatisch in der natürlichen Reihenfolge sortiert, die durch die CompareTo-Methode definiert wird. Zahlen, Zeichenfolgen und viele andere Typen können verglichen werden. Zeichenfolgen können mithilfe des alphabetischen Vergleichs verglichen werden.
Verschiedene integrierte Java-Klassen implementieren die vergleichbare Schnittstelle. Das Wichtigste, was man beachten sollte, ist, dass die vergleichbare Schnittstelle nur zum Vergleichen von Objekten derselben Klasse verwendet werden kann.

Was ist Komparator?
Die Komparatorschnittstelle der Programmiersprache Java ist im Util-Paket enthalten und wird verwendet, um die Sammlung auf der Grundlage mehrerer Attribute gleichzeitig zu sortieren.
Comparator ist eine völlig separate Klasse. Die Programmierer verwenden, um mehrere Klassen zu erstellen, die die Komparatorschnittstelle zum Zweck des Vergleichens verschiedener Objekte implementieren.
Um ein beliebiges Sammlungsobjekt zu vergleichen, besteht der erste Schritt darin, eine Klasse zu erstellen, die die Methode comparator implementiert, die die Methode Compare() enthält. Der folgende Schritt besteht darin, eine Instanz dieser Klasse zu erstellen, die die Komparatorschnittstelle implementiert.
Der letzte Schritt besteht darin, die überladene Methode aufzurufen, bei der es sich um die Methode sort() handelt, und dann sowohl die Liste als auch die Instanz der Klasse zuzuweisen, die im vorherigen Schritt erstellt wurde.
Die Komparatorschnittstelle vergleicht zwei Objekte unterschiedlicher Klassen. Die Comparator-Schnittstelle enthält zwei Methoden, nämlich die Methode Compare() und die Methode Equals().
Die Methode compare() verwendet zwei unterschiedliche Objekte als zu vergleichende Parameter und die Methode equals() ermittelt, ob das übergebene Objekt dem aufrufenden Komparator entspricht.
Die Methode equal() gibt als Ausgabe einen booleschen Wert zurück. True wird zurückgegeben, wenn das Objekt bestanden wird und das aufrufende Objekt beide Komparatoren sind. Wenn nicht, wird False zurückgegeben.
Die Methode „compare()“ gibt in ihrer Ausgabe einen ganzzahligen Wert zurück, der das größere der beiden übergebenen Objekte angibt.

Hauptunterschiede zwischen Vergleichbar und Vergleicher
- Die Comparable-Schnittstelle bietet eine einzelne Sortierreihenfolge, in der die Sammlung nach einem einzelnen Element wie der ID, dem Namen oder einem beliebigen bestimmten Parameter sortiert werden kann, während die Comparator-Schnittstelle eine mehrfache Sortierreihenfolge bietet, in der die Sammlung nach mehreren Elementen wie der ID, dem Namen oder einem anderen Parameter sortiert werden kann.
- Die Vergleichsschnittstelle wirkt sich auf die ursprüngliche Klasse aus, da sie die tatsächliche Klasse ändert, wohingegen die Vergleichsschnittstelle die ursprüngliche Klasse in keiner Weise beeinflusst, da die tatsächliche Klasse ohne Änderungen dieselbe bleibt.
- Eine vergleichbare Schnittstelle ist im lang-Paket von Java vorhanden, während die comparator-Schnittstelle im util-Paket von Java vorhanden ist.
- In der vergleichbaren Schnittstelle wird die Methode „compareTo()“ zum Sortieren der Elemente verwendet, während in der Schnittstelle „comparator“ die Methode „compare()“ zum Sortieren der Elemente verwendet wird.
- Die Listenelemente vergleichbarer Typen einer Sammlung können mithilfe der Sammlungen sortiert werden. Sort (List)-Methode, während andererseits die Listenelemente des Komparatortyps einer Collection mithilfe der Collections sortiert werden können. Sort (List, Comparator)-Methode.
