Mengisih Objek mengikut Pelbagai Medan dalam Java
Mengisih data mengikut berbilang medan ialah operasi biasa dalam pengaturcaraan. Soalan ini meneroka cara mengisih tatasusunan objek orang mengikut abjad mengikut nama dan kemudian mengikut umur.
Menggunakan Collections.sort untuk Isih Pelbagai Medan
Untuk mencapai matlamat ini, kita boleh memanfaatkan kaedah Collections.sort, yang membenarkan pengisihan tersuai berdasarkan Comparator yang disediakan. Pembanding menentukan cara dua objek harus dibandingkan, membolehkan kami mentakrifkan strategi pengisihan berbilang medan.
private static void order(List<Person> persons) { Collections.sort(persons, new Comparator() { public int compare(Object o1, Object o2) { String x1 = ((Person) o1).getName(); String x2 = ((Person) o2).getName(); int sComp = x1.compareTo(x2); if (sComp != 0) { return sComp; } Integer x1 = ((Person) o1).getAge(); Integer x2 = ((Person) o2).getAge(); return x1.compareTo(x2); }}); }
Dalam kod ini, kaedah bandingkan terlebih dahulu membandingkan nama objek dua orang (x1 dan x2 ). Jika ia berbeza, ia mengembalikan hasil kaedah String.compareTo, yang menunjukkan rentetan yang lebih besar dari segi leksikografi. Jika nama adalah sama, ia meneruskan untuk membandingkan umur (x1 dan x2) menggunakan kaedah compareTo untuk objek Integer.
Dengan menggunakan strategi Comparator ini, kaedah Collections.sort akan mengisih senarai objek orang mengikut abjad mengikut nama, dan jika nama itu sama, ia akan menyusunnya mengikut umur.
Atas ialah kandungan terperinci Bagaimana untuk Mengisih Senarai Objek mengikut Pelbagai Medan di Jawa?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!