Comment la méthode Arrays.sort() en Java trie-t-elle un tableau selon un comparateur personnalisé ?
En Java, la méthode Arrays.sort() est une méthode très utile pour trier les tableaux. Par défaut, cette méthode trie par ordre croissant. Mais parfois, nous devons trier le tableau selon nos propres règles définies. À ce stade, vous devez utiliser un comparateur personnalisé (Comparator).
Un comparateur personnalisé est une classe qui implémente l'interface Comparator, qui peut définir des règles de comparaison en fonction de besoins spécifiques. Les comparateurs personnalisés peuvent trier des objets de n'importe quel type, y compris les types de base et les types personnalisés.
Ensuite, je présenterai comment utiliser un comparateur personnalisé pour trier la méthode Arrays.sort() en Java et fournirai un exemple de code pour illustrer.
Pour définir un comparateur personnalisé, il vous suffit d'implémenter l'interface Comparator et de remplacer la méthode de comparaison. La méthode de comparaison a deux paramètres. Nous devons définir des règles de comparaison dans cette méthode. Les règles de comparaison ont les situations suivantes :
public class MyComparator implements Comparator{ @Override public int compare(T o1, T o2) { // 你的自定义比较规则 return 0; } }
Le code clé est le suivant :
public staticvoid sort(T[] a, Comparator super T> c)
Parmi eux, T[] a représente le tableau à trier, Comparator
Exemple de codepublic class StudentComparator implements Comparator{ @Override public int compare(Student o1, Student o2) { return o1.age - o2.age; } }
Dans le code ci-dessus, nous définissons une classe StudentComparator, qui implémente l'interface Comparator
Ensuite, nous pouvons utiliser la méthode Arrays.sort() pour trier le tableau Student selon les règles que nous définissons.
public class Main { public static void main(String[] args) { Student[] students = new Student[3]; students[0] = new Student("Tom", 20); students[1] = new Student("Jack", 18); students[2] = new Student("Lucy", 22); Arrays.sort(students, new StudentComparator()); for (Student student : students) { System.out.println(student.name + " " + student.age); } } }
Le résultat de sortie est :
Jack 18 Tom 20 Lucy 22
D'après les résultats, nous pouvons voir que selon les règles que nous avons définies, le tableau Student est trié du plus petit au plus grand par âge. La méthode
SummaryCe 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!