Rumah > Java > javaTutorial > Bagaimana untuk Mengisih Objek Java mengikut Pelbagai Medan (Nama dan Umur)?

Bagaimana untuk Mengisih Objek Java mengikut Pelbagai Medan (Nama dan Umur)?

Susan Sarandon
Lepaskan: 2024-12-15 19:58:16
asal
455 orang telah melayarinya

How to Sort Java Objects by Multiple Fields (Name and Age)?

Mengisih Objek Java mengikut Pelbagai Medan: Nama dan Umur

Pertimbangkan tatasusunan objek Orang, setiap satu mengandungi umur integer dan nama String . Mengisih tatasusunan sedemikian mengikut abjad mengikut nama dan kemudian mengikut umur memerlukan algoritma pengisihan tersuai.

Menggunakan Collections.sort

Pustaka Java Collections menyediakan kaedah isihan terbina dalam anda boleh memanfaatkan:

private static void order(List<Person> persons) {
    Collections.sort(persons, new Comparator<>() {
        @Override
        public int compare(Object o1, Object o2) {
            // Compare by name (lexicographically)
            String x1 = ((Person) o1).getName();
            String x2 = ((Person) o2).getName();
            int sComp = x1.compareTo(x2);
            // If names are different, return result
            if (sComp != 0) {
                return sComp;
            }
            // If names are equal, compare by age
            Integer x1 = ((Person) o1).getAge();
            Integer x2 = ((Person) o2).getAge();
            return x1.compareTo(x2);
        }
    });
}
Salin selepas log masuk

Proses Aliran

  1. Sebutkan Pembanding dengan melaksanakan kaedah bandingkan.
  2. Bandingkan nama dua objek (secara leksografi). Jika berbeza, kembalikan hasilnya.
  3. Jika nama adalah sama, bandingkan umur dan kembalikan hasilnya.

Dengan menggunakan Collections.sort dengan Pembanding tersuai ini, anda boleh mengisih tatasusunan objek Orang dalam susunan nama menaik, diikuti dengan susunan umur menaik.

Atas ialah kandungan terperinci Bagaimana untuk Mengisih Objek Java mengikut Pelbagai Medan (Nama dan Umur)?. 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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan