Exemple 1
La copie de code est la suivante:
Package com.yonyou.test;
import java.util.arraylist;
Importer java.util.collections;
Importer java.util.comparator;
Importer java.util.list;
Test de classe publique {
public static void main (String [] args) {
Étudiant zlj = nouvel étudiant ("ding xiaoyu", 21);
Student DXY = New Student ("Zhao SI", 22);
Étudiant CJC = New Student ("Zhang San", 11);
Étudiant LGC = New Student ("Liu Wu", 19);
List <Student> StudentList = new ArrayList <Student> ();
StudentList.add (ZLJ);
StudentList.add (DXY);
StudentList.add (CJC);
StudentList.add (LGC);
System.out.println ("trié par année:");
Collection.Sort (StudentList, New SortByage ());
pour (étudiant étudiant: StudentList) {
System.out.println (Student.GetName () + "/" + Student.getAge ());
}
System.out.println ("==========");
System.out.println ("trié par nom");
Collection.Sort (StudentList, new SortByName ());
pour (étudiant étudiant: StudentList) {
System.out.println (Student.GetName () + "/" + Student.getAge ());
}
}
}
classe SortByage implémente le comparateur {
public int compare (objet o1, objet o2) {
Student S1 = (étudiant) O1;
Student S2 = (étudiant) O2;
if (s1.getage ()> s2.getage ())
retour 1;
else if (s1.getage () == s2.getage ()) {
retour 0;
}
retour -1;
}
}
classe SortByName implémente le comparateur {
public int compare (objet o1, objet o2) {
Student S1 = (étudiant) O1;
Student S2 = (étudiant) O2;
if (s1.getName (). compareto (s2.getName ()) <0)
retour -1;
else if (s1.getName (). compareTo (s2.getName ())> 0) {
retour 1;
}
retour 0;
}
}
classe étudiante {
Âge privé;
nom de chaîne privé;
public int getage () {
âge de retour;
}
Setage du public public (Int Age) {
this.age = âge;
}
public String getName () {
nom de retour;
}
public void setName (nom de chaîne) {
this.name = name;
}
Étudiant public (nom de la chaîne, Int Age) {
this.age = âge;
this.name = name;
}
}
Exemple 2
Je rencontre souvent des problèmes avec le tri du tableau.
En fait, cette situation est souvent rencontrée.
Le code source est donné ci-dessous:
1: Person.java Fichier:
La copie de code est la suivante:
classe publique Personne {
Nom de chaîne;
en âge;
Personne publique (nom de la chaîne, Int Age) {
this.name = name;
this.age = âge;
}
public int getage () {
âge de retour;
}
Setage du public public (Int Age) {
this.age = âge;
}
public String getName () {
nom de retour;
}
public void setName (nom de chaîne) {
this.name = name;
}
}
2: MyComparator.java
La copie de code est la suivante:
// implémenter l'interface du comparateur, c'est-à-dire définir les règles de tri, vous pouvez définir presque toutes les règles
Package com.infoEarth;
import java.util. *;
classe publique MyComparator implémente le comparateur {
public int compare (objet o1, objet o2) {
Personne p1 = (personne) o1;
Personne p2 = (personne) o2;
if (p1.age <p2.age)
retour 1;
autre
retour 0;
}
}
3: listsort.java
La copie de code est la suivante:
Package com.infoEarth;
import java.util.arraylist;
Importer java.util.collections;
Importer java.util.comparator;
classe publique ListSort {
public static void main (String [] args) {
ArrayList list = new ArrayList ();
list.add (New Person ("LCL", 28));
list.add (new personne ("fx", 23));
list.add (new personne ("WQX", 29));
Comparator comp = new myComparator ();
Collection.Sort (List, Comp);
for (int i = 0; i <list.size (); i ++) {
Personne p = (personne) list.get (i);
System.out.println (P.GetName ());
}
}
}
Bien sûr, si votre liste est enveloppée dans un type de base ou une chaîne, juste Collection.Sort (liste);