Tri multi-champs en Java
Le tri de tableaux d'objets selon plusieurs champs est une exigence courante en programmation. Dans cette question, nous souhaitons trier un tableau d'objets Person par nom puis par âge.
Solution :
Pour y parvenir, nous pouvons exploiter les collections. méthode de tri avec une implémentation personnalisée de Comparator. Un comparateur est une classe qui définit la logique de comparaison pour deux objets. Dans notre cas, nous avons besoin d'un comparateur qui compare les objets Personne en fonction du nom d'abord et de l'âge comme solution de secours.
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); }}); }
Explication :
Après avoir trié la liste à l'aide du comparateur personnalisé, le Liste
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!