Terkadang ketika Anda perlu merangkum dan mengurutkan halaman Anda sendiri, bagaimana daftar mengurutkan atribut tertentu? Bagikan contoh kecil, semua orang mendorong Anda, saya harap ini akan berguna bagi Anda. Tolong beri saya beberapa nasihat.
1. Kacang Siswa adalah sebagai berikut:
siswa kelas publik {private int usia; nama string pribadi; bobot string pribadi; public string getWeight () {return weight;} public void setWeight (bobot string) {this.weight = weight;} public int getage () {return use;} public void name (int usia) {this.2. Urutkan berdasarkan atribut tipe int objek dalam daftar
/*** Urutkan berdasarkan atribut dari tipe int dalam daftar* @param Daftar*/@SuppressWarnings ("Uncecked") public static void sortIntMethod (daftar daftar) {collections.sort (daftar, pembanding baru () {@overridepublic int perbandingan (objek O2) {Student STU1 = (Student) Student) Student) Student) Student; stu2 = (siswa) o2; if (stu1.getage ()> stu2.getage ()) {return 1;} lain jika (stu1.getage () == stu2.getage ()) {return 0;} else {return -1;}}}); System.out.println ("///////////// 排序之后/////////////////"); untuk (int i = 0; i <list.size (); i ++) {student st = (student) list.get (i); System.out.println ("St.age ="+St.Getage ()+", St.Name ="+St.GetName ()); }}3. Urutkan berdasarkan properti jenis string objek dalam daftar
1) Metode 1:
/*** Urutkan berdasarkan atribut tipe string dalam daftar* @param List*/@SuppressWarnings ("Uncecked") public static void sortStringMethod (daftar daftar) {collections.sort (daftar, komparator baru () {@overridepublic int perbandingan (objek o1, objek o2) {siswa STU1 = {@overridepublic int (objek o1, objek o2) {student stuor () {@overridepublic int bandar stu1.getName (). compareTo (stu2.getname ());}}); System.out.println ("//////////////////////////////////////////"); untuk (int i = 0; i <list.size (); i ++) {student st = (student) list.get (i); System.out.println ("St.age ="+St.Getage ()+", St.Name ="+St.GetName ()); }} 2) Metode 2:
Diimplementasikan menggunakan java.text.rulebasedCollator untuk melakukan perbandingan string yang membedakan lokal:
/*** Urutkan berdasarkan atribut jenis string dalam daftar* @param List*/@SuppressWarnings ("Uncecked") public static void sortByRuleBedCollator (daftar daftar) {collections.sort (daftar, returnor baru () {@overrididepublic int perbandingan (objek O2, objek o2) {returnor () {@overrididepublic int Perbandingan (Objek O2) ((java.text.rulebasedCollator) java.text.collator.getInstance (java.util.locale.china)). Bandingkan (((siswa) o1) .getName (), ((Siswa) o2) .getName ());}}); System.out.println ("///////////// 排序之后/////////////////"); untuk (int i = 0; i <list.size (); i ++) {student st = (student) list.get (i); System.out.println ("St.age ="+St.Getage ()+", St.Name ="+St.GetName ()); }}4. Uji metode penyortiran
@SuppressWarnings ("Uncecked") public static void main (string [] args) {arraylist list = new arraylist (); siswa t1 = siswa baru (); t1.setage (35); t1.setname ("wangleei"); list.add (t1); student t2 = newname ("wangleei"); list.add (t1); student t2 = New Student (); t2.setage (4); t2.setname ("lisi"); list.add (t2); siswa t3 = siswa baru (); t3.setage (56); t3.setname ("zhonghua"); list.add (t3); siswa t4 = baru Student (); t4.setage (39); t4.setname ("waugliei"); list.add (t4); System.out.println ("/////////////// 排序之前 //////////////"); untuk (int i = 0; i <list.size (); System.out.println ("St.age ="+St.Getage ()+", St.Name ="+St.GetName ()); } // urutkan sesuai dengan properti int tipe int di daftar sortIntmethod (daftar); // urutkan sesuai dengan properti string type di daftar sortstringmethod (daftar);} 5. Hasil