Saya ingin mengembangkan demo penyortiran untuk daftar mobil. Saya menggunakan tabel data untuk menampilkan daftar mobil. Sekarang sebenarnya saya ingin mengurutkan daftar berdasarkan warna mobil. Di sini tidak diurutkan berdasarkan urutan abjad. Saya ingin menggunakan urutan penyortiran khusus seperti mobil Merah didahulukan, lalu Biru, dll.
Untuk itu saya mencoba menggunakan Java Comparator
dan Comparable
tetapi memungkinkan untuk mengurutkan dalam urutan abjad saja.
Jadi, dapatkah ada orang yang memandu saya cara menerapkan teknik yang akan digunakan sehingga penyortiran menjadi lebih cepat.
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
}
}