Die korrekte Antwort auf die Frage ist die Methode compare()
. Wenn eine Klasse das Interface java.util.Comparator
in Java implementiert, muss sie auf jeden Fall die Methode compare()
definieren.
@Override
public int compare(Object o1, Object o2) {
// Implementationsdetails hier
}
Ein Comparator ist eine Schnittstelle, die zum Vergleich von zwei Objekten verwendet wird. Die Methode compare() gibt einen negativen Integer, null oder einen positiven Integer zurück, abhängig davon, ob das erste Argument kleiner, gleich oder größer als das zweites ist. Sie ist sehr nützlich, wenn man benutzerdefinierte Sortierspezifikationen für Sammlungen erstellt.
Um weiter zu illustrieren, prüfen Sie bitte den folgenden Code-Ausschnitt:
import java.util.Comparator;
class Student {
int rollno;
String name, address;
}
class Sortbyroll implements Comparator<Student> {
public int compare(Student a, Student b) {
return a.rollno - b.rollno;
}
}
In diesem Beispiel wird ein benutzerdefinierter Comparator Sortbyroll
erstellt, der Student
-Objekte nach ihrer rollnummer sortiert. Die Methode compare()
ist so implementiert, dass sie die Differenz zwischen den Rollnummern zweier Studenten zurückgibt, was zu einer aufsteigenden Reihenfolge führt.
Es ist wichtig zu bemerken, dass java.util.Comparator
einen zusätzlichen Vertrag über die equals()
Methode hat. Es wird jedoch nicht empfohlen, diese Methode zu überschreiben, da sie bereits in der java.lang.Object
Klasse definiert ist.
Zusammenfassend lässt sich sagen, dass die compare()
Methode eine unerlässliche Methode ist, wenn eine Klasse das java.util.Comparator
Interface implementiert. Sie ermöglicht benutzerdefinierte Sortierungen und Vergleichslogik in Java Sammlungen, was die Funktionalität und Flexibilität von Java erweitert.