Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Isih Jadual Data Kereta mengikut Warna Menggunakan Pembanding Tersuai di Jawa?

Bagaimanakah Saya Boleh Isih Jadual Data Kereta mengikut Warna Menggunakan Pembanding Tersuai di Jawa?

DDD
Lepaskan: 2024-12-10 20:25:11
asal
577 orang telah melayarinya

How Can I Sort a Data Table of Cars by Color Using a Custom Comparator in Java?

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
}
Salin selepas log masuk

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());
    }
}
Salin selepas log masuk

Ganti medan warna String dalam Kereta dengan PaintColors enum:

private PaintColors color;
Salin selepas log masuk

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());
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan