Wie sortiert die Methode Arrays.sort() in Java ein Array nach einem benutzerdefinierten Komparator?
In Java ist die Methode Arrays.sort() eine sehr nützliche Methode zum Sortieren von Arrays. Standardmäßig sortiert diese Methode in aufsteigender Reihenfolge. Aber manchmal müssen wir das Array nach unseren eigenen definierten Regeln sortieren. Zu diesem Zeitpunkt müssen Sie einen benutzerdefinierten Komparator (Komparator) verwenden.
Ein benutzerdefinierter Komparator ist eine Klasse, die die Comparator-Schnittstelle implementiert, die Vergleichsregeln entsprechend spezifischer Anforderungen definieren kann. Benutzerdefinierte Komparatoren können Objekte jeder Art sortieren, einschließlich Basistypen und benutzerdefinierter Typen.
Als nächstes werde ich vorstellen, wie man einen benutzerdefinierten Komparator zum Sortieren der Arrays.sort()-Methode in Java verwendet, und einige Beispielcodes zur Veranschaulichung bereitstellen.
Um einen benutzerdefinierten Komparator zu definieren, müssen Sie nur die Comparator-Schnittstelle implementieren und die Vergleichsmethode überschreiben. Die Vergleichsmethode hat zwei Parameter. Die Vergleichsregeln haben die folgenden Situationen:
public class MyComparator implements Comparator{ @Override public int compare(T o1, T o2) { // 你的自定义比较规则 return 0; } }
public staticvoid sort(T[] a, Comparator super T> c)
Beispielcode
Schauen wir uns nun ein konkretes Beispiel an. Angenommen, wir haben eine Schülerklasse. Diese Klasse enthält zwei Mitgliedsvariablen. Wenn wir nun das Student-Array vom kleinsten zum größten Alter sortieren möchten, müssen wir einen benutzerdefinierten Komparator definieren. Der Beispielcode lautet wie folgt:public class StudentComparator implements Comparator{ @Override public int compare(Student o1, Student o2) { return o1.age - o2.age; } }
public class Main { public static void main(String[] args) { Student[] students = new Student[3]; students[0] = new Student("Tom", 20); students[1] = new Student("Jack", 18); students[2] = new Student("Lucy", 22); Arrays.sort(students, new StudentComparator()); for (Student student : students) { System.out.println(student.name + " " + student.age); } } }
Jack 18 Tom 20 Lucy 22
Zusammenfassung
Die Methode Arrays.sort() ist eine sehr nützliche Methode, mit der jede Art von Array sortiert werden kann. Wenn Sie das Array nach Ihren eigenen definierten Regeln sortieren müssen, müssen Sie nur die Comparator-Schnittstelle implementieren und die Vergleichsmethode überschreiben. Der spezifische Implementierungsprozess ist wie oben erwähnt. Ich hoffe, dass er für alle hilfreich sein wird.Das obige ist der detaillierte Inhalt vonWie sortiert die Methode Arrays.sort() in Java Arrays nach einem benutzerdefinierten Komparator?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!