Benutzerdefinierte Sortierung mit Komparator für eine Datentabelle
Sie haben erwähnt, dass Sie eine Datentabelle zum Anzeigen von Fahrzeuglisten verwenden und diese nach Fahrzeugfarbe sortieren möchten , nicht alphabetisch. Um dies zu erreichen, können Sie die Comparator-Schnittstelle von Java nutzen.
Sie haben versucht, Comparable und Comparator zu verwenden, aber es scheint, dass es nur eine Sortierung in alphabetischer Reihenfolge zulässt. Hier ist ein erweiterter Ansatz mit einem benutzerdefinierten Komparator:
Beginnen Sie mit der Definition einer Aufzählung für Autofarben, wie vorgeschlagen:
public enum PaintColors { SILVER, BLUE, MAGENTA, RED }
Aktualisieren Sie Ihren ColorComparator, um einen Vergleich basierend auf der PaintColors-Aufzählung durchzuführen:
static class ColorComparator implements Comparator<Car> { public int compare(Car c1, Car c2) { return c1.getColor().compareTo(c2.getColor()); } }
Ersetzen Sie das String-Farbfeld in Car durch die PaintColors Aufzählung:
private PaintColors color;
Aktualisieren Sie in Ihrer Hauptmethode Ihre Fahrzeugliste und sortieren Sie sie mit dem benutzerdefinierten Komparator:
carList.add(new Car("Ford", PaintColors.SILVER)); ... Collections.sort(carList, new ColorComparator());
Dieser Ansatz verwendet eine Aufzählung zur Darstellung von Fahrzeugfarben, sodass Sie diese definieren können eine benutzerdefinierte Sortierreihenfolge innerhalb der Enum-Deklaration. Der ColorComparator verwendet dann die definierte Reihenfolge, um die Fahrzeugliste effizient zu sortieren.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Datentabelle von Autos mithilfe eines benutzerdefinierten Komparators in Java nach Farbe sortieren?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!