Ich möchte eine Sortierdemo für die Fahrzeugliste entwickeln. Ich verwende eine Datentabelle, um die Fahrzeugliste anzuzeigen. Eigentlich möchte ich die Liste nach Autofarbe sortieren. Hier ist es nicht nach alphabetischer Reihenfolge sortiert. Ich möchte meine benutzerdefinierte Sortierreihenfolge verwenden, z. B. rotes Auto zuerst, dann blaues usw.
Dafür versuche ich Java zu verwenden Comparator
und Comparable
es erlaubt aber nur in alphabetischer Reihenfolge zu sortieren.
Kann mir jemand den Weg weisen, die zu verwendende Technik zu implementieren, damit die Sortierung schneller wird?
class Car implements Comparable<Car>
{
private String name;
private String color;
public Car(String name, String color){
this.name = name;
this.color = color;
}
//Implement the natural order for this class
public int compareTo(Car c) {
return name.compareTo(c.name);
}
static class ColorComparator implements Comparator<Car> {
public int compare(Car c1, Car c2) {
String a1 = c1.color;
String a2 = c2.color;
return a1.compareTo(a2);
}
}
public static void main(String[] args) {
List<Car> carList = new ArrayList<>();
List<String> sortOrder = new ArrayList<>();
carList.add(new Car("Ford","Silver"));
carList.add(new Car("Tes","Blue"));
carList.add(new Car("Honda","Magenta"));
sortOrder.add("Silver");
sortOrder.add("Magenta");
sortOrder.add("Blue");
// Now here I am confuse how to implement my custom sort
}
}