Vous pouvez d'abord jeter un œil à cette méthode statique STATIQUE STATIQUE <T> VOID SORT (Liste <T> Liste, Comparateur <? Super T> C)
1. Définissez d'abord un modèle:
La copie de code est la suivante:
modèle de package;
/ **
* User.java
*
* @Author Liang WP 3 mars 2014
* /
utilisateur de classe publique
{
Nom d'utilisateur de chaîne privée;
Userage int privé;
Utilisateur public ()
{
}
Utilisateur public (nom d'utilisateur de chaîne, utilisateur int)
{
this.userName = nom d'utilisateur;
this.Userage = utilisateur;
}
public String getUserName ()
{
Retour Nom d'utilisateur;
}
public void SetUsername (String Username)
{
this.userName = nom d'utilisateur;
}
public int getUserage ()
{
return utilisateur;
}
SETUSERAGE PUBLIQUE PUBLIQUE (INT Userage)
{
this.Userage = utilisateur;
}
}
2. Définissez ensuite un comparateur, implémentez l'interface java.util.comparator et écrivez des règles de comparaison dans la méthode compare ():
La copie de code est la suivante:
package util;
Importer java.util.comparator;
Importer Model.User;
/ **
* ComparatorUser.java
*
* @Author Liang WP 3 mars 2014
* /
Public Class ComparatorUser implémente le comparateur <utilisateur>
{
@Outrepasser
public int compare (utilisateur arg0, utilisateur arg1)
{
// Comparez d'abord les noms
int flag = arg0.getUsername (). compareto (arg1.getUsername ());
// Si le nom est le même, il sera comparé à l'âge
si (drapeau == 0)
{
return arg0.getUserage () - arg1.getUserage ();
}
drapeau de retour;
}
}
3. Lors du tri, utilisez la méthode de tri (liste de liste, comparateur C) dans java.util.collections:
La copie de code est la suivante:
test de package;
import java.util.arraylist;
Importer java.util.collections;
Importer java.util.list;
importer util.comparatorUser;
Importer Model.User;
/ **
* Testapp.java
*
* @Author Liang Weiping 3 mars 2014
* /
Classe publique TestApp
{
public static void main (String [] arg0)
{
List <ser user> userList = new ArrayList <User> ();
// insérer des données
userList.add (nouvel utilisateur ("A", 15));
userList.add (nouvel utilisateur ("B", 14));
userList.add (nouvel utilisateur ("A", 14));
// Trier
Collection.Sort (UserList, New Comparatorauser ());
// imprime le résultat
pour (utilisateur u: lish utilisateur)
{
System.out.println (U.GetUsername () + "" + U.GetUserage ());
}
}
}
4. Résultats de l'opération:
La copie de code est la suivante:
A 14
A 15
B 14