Je souhaite développer une démo de tri pour la liste des voitures. J'utilise le tableau de données pour afficher la liste des voitures. Maintenant, je veux trier la liste par couleur de voiture. Ici, il n'est pas trié par ordre alphabétique. Je veux utiliser mon ordre de tri personnalisé comme la voiture rouge vient en premier, puis la bleue, etc.
Pour cela j'essaye d'utiliser Java Comparator
et Comparable
mais cela permet de trier uniquement par ordre alphabétique.
Alors, quelqu'un peut-il me guider sur la manière de mettre en œuvre la technique à utiliser pour que le tri devienne plus rapide.
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
}
}