Isih Tersuai dengan Pembanding untuk Jadual Data
Anda menyebut menggunakan jadual data untuk memaparkan senarai kereta dan ingin mengisihnya mengikut warna kereta , bukan mengikut abjad. Untuk mencapai matlamat ini, anda boleh memanfaatkan antara muka Pembanding Java.
Anda telah cuba menggunakan Comparable dan Comparator, tetapi nampaknya hanya membenarkan pengisihan dalam susunan abjad. Berikut ialah pendekatan yang dipertingkatkan menggunakan Pembanding tersuai:
Mulakan dengan menentukan enum untuk warna kereta, seperti yang dicadangkan:
public enum PaintColors { SILVER, BLUE, MAGENTA, RED }
Kemas kini Pembanding Warna anda untuk membandingkan berdasarkan enum PaintColors:
static class ColorComparator implements Comparator<Car> { public int compare(Car c1, Car c2) { return c1.getColor().compareTo(c2.getColor()); } }
Ganti medan warna String dalam Kereta dengan PaintColors enum:
private PaintColors color;
Dalam kaedah utama anda, kemas kini senarai kereta anda dan isih menggunakan pembanding tersuai:
carList.add(new Car("Ford", PaintColors.SILVER)); ... Collections.sort(carList, new ColorComparator());
Pendekatan ini menggunakan enum untuk mewakili warna kereta, membolehkan anda menentukan susunan isihan tersuai dalam perisytiharan enum. ColorComparator kemudiannya menggunakan susunan yang ditetapkan untuk mengisih senarai kereta dengan cekap.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Isih Jadual Data Kereta mengikut Warna Menggunakan Pembanding Tersuai di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!