Parfois, lorsque vous devez encapsuler et trier votre propre page, comment la liste trie-t-elle un certain attribut? Partagez un petit exemple, tout le monde vous encourage, j'espère que cela vous sera utile. Donnez-moi des conseils.
1. Le haricot de l'élève est le suivant:
classe publique étudiant {private int Âge; name de chaîne privée; poids de chaîne privée; String public getweight () {return weight;} public void setweight (String Weight) {this.weight = weight;} public int Getage () {return Age;} public void selage (int age) {this.age =} public String getName () {return nom;}2. Trier par l'attribut de type int de l'objet dans la liste
/ ** * Trier par l'attribut d'un type int dans la liste * @param liste * / @ suppressWarnings ("Unchecked") public static void trintMethod (list list) {Collections.sort (list, nouveau comparateur () {@ overRidepublic int compare (objet o1, objet o2) {Student Stu1 = (étudiant) o1; Stu2 = (étudiant) o2; if (stu1.getage ()> stu2tage ()) {return 1;} else if (stu1.getage () == stu2tage ()) {return 0;} else {return -1;}}}); System.out.println ("////////////// 排序之后 ////////////////"); pour (int i = 0; i <list.size (); i ++) {étudiant st = (étudiant) list.get (i); System.out.println ("St.age =" + St.Getage () + ", St.Name =" + St.GetName ()); }}3. Trier par les propriétés du type de chaîne de l'objet dans la liste
1) Méthode 1:
/ ** * Trier par l'attribut d'un type de chaîne dans la liste * @param liste * / @ suppressWarnings ("Unchecked") public static void sortStringMethod (list list) {Collections.sort (list, new Comparator () {@ OverRidepublic int compare (Object O1, Object O2) {Student Stu1 = (Student) O1; Student Stu2 = (Student) o2) Stu1.getName (). Compareto (stu2tName ());}}); System.out.println ("/////////////////////////////////////////////////////////////////////////////////////////////DRANT pour (int i = 0; i <list.size (); i ++) {étudiant st = (étudiant) list.get (i); System.out.println ("St.age =" + St.Getage () + ", St.Name =" + St.GetName ()); }} 2) Méthode 2:
Implémenté à l'aide de java.text.rulebasedCollat pour effectuer des comparaisons de chaînes qui distinguent les paramètres régionaux:
/ ** * Trier par attributs d'un type de chaîne dans la liste * @param liste * / @ suppressWarnings ("Unchecked") public static void sortBulebasedCollator (list list) {Collections.sort (list, nouveau comparateur () {@ overRidePublic int compare (objet o1, objet o2) {return ((java.text.rulebasedCollator) java.text.collator.getinstance (java.util.locale.china)). Compare (((étudiant) o1) .getName (), ((Student) o2) .getName ());}}); System.out.println ("////////////// 排序之后 /////////////////////"); pour (int i = 0; i <list.size (); i ++) {étudiant st = (étudiant) list.get (i); System.out.println ("St.age =" + St.Getage () + ", St.Name =" + St.GetName ()); }}4. Testez la méthode de tri
@SuppressWarnings ("Unchecked") public static void main (String [] args) {ArrayList list = new ArrayList (); étudiant t1 = new student (); t1.setage (35); t1.setName ("wanglei"); list.add (t1); étudiant t2 = newsname ("wanglei"); list.add (t1); étudiant t2 = news Student (); t2.Setage (4); t2.SetName ("Lisi"); list.add (t2); étudiant t3 = new Student (); t3.Setage (56); t3.setName ("zhonghua"); list.add (t3); étudiant t4 = new Student (); t4.Setage (39); t4.SetName ("waanglei"); list.add (t4); System.out.println ("///////////// //////////////"); pour (int i = 0; i <list.size (); System.out.println ("St.age =" + St.Getage () + ", St.Name =" + St.GetName ()); } // Trier en fonction des propriétés de l'int type dans la liste StrUntMethod (liste); // Trier en fonction des propriétés du type de chaîne dans la liste sortStringMethod (list);} 5. Résultats