Quero desenvolver uma demonstração de classificação para a lista de carros. Estou usando a tabela de dados para exibir a lista de carros. Na verdade, quero classificar a lista pela cor do carro. Aqui, não é classificado por ordem alfabética. Quero usar minha ordem de classificação personalizada, como Carro vermelho vem primeiro, depois Azul etc.
Para isso tento usar Java Comparatore Comparablemas permite ordenar apenas em ordem alfabética.
Então, alguém pode me orientar na forma de implementar a técnica a ser utilizada para que a triagem seja mais rápida.
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
}
}