Maison> Java> javaDidacticiel> le corps du texte

Comment la méthode Arrays.sort() en Java trie-t-elle les tableaux par comparateur personnalisé ?

王林
Libérer: 2023-11-18 11:36:57
original
887 Les gens l'ont consulté

Comment la méthode Arrays.sort() en Java trie-t-elle les tableaux par comparateur personnalisé ?

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.

  1. Comment définir un comparateur personnalisé ?

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 :

  • obj2, renvoie un entier négatif
  • obj1 == obj2, renvoie 0 ; obj1 > obj2, renvoie un entier positif
  • Le code clé est le suivant :
public class MyComparator implements Comparator { @Override public int compare(T o1, T o2) { // 你的自定义比较规则 return 0; } }
Copier après la connexion

Comment utiliser un comparateur personnalisé pour trier un tableau ?
  1. La méthode Arrays.sort() a plusieurs versions surchargées, dont l'une accepte un comparateur personnalisé. Nous pouvons utiliser notre propre comparateur défini comme deuxième paramètre de cette méthode, afin de pouvoir trier le tableau selon nos propres règles.

Le code clé est le suivant :

public static  void sort(T[] a, Comparator c)
Copier après la connexion

Parmi eux, T[] a représente le tableau à trier, Comparator

Exemple de code
  1. Maintenant, regardons un exemple spécifique Supposons que nous ayons une classe Student. Cette classe contient deux variables membres : le nom et l'âge. Maintenant, si nous voulons trier le tableau Student du plus petit au plus grand âge, nous devons définir un comparateur personnalisé. L'exemple de code est le suivant :
public class StudentComparator implements Comparator { @Override public int compare(Student o1, Student o2) { return o1.age - o2.age; } }
Copier après la connexion

Dans le code ci-dessus, nous définissons une classe StudentComparator, qui implémente l'interface Comparator Dans la méthode de comparaison, nous concentrons la comparaison sur l’âge. Si l'âge de o1 est inférieur à l'âge de o2, un entier négatif est renvoyé ; si l'âge de o1 est égal à l'âge de o2, 0 est renvoyé ; si l'âge de o1 est supérieur à l'âge de o2, un entier positif est renvoyé.

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); } } }
Copier après la connexion

Le résultat de sortie est :

Jack 18 Tom 20 Lucy 22
Copier après la connexion

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

Summary
  1. Arrays.sort() est une méthode très utile qui peut trier tout type de tableau. Lorsque vous devez trier le tableau selon vos propres règles définies, il vous suffit d'implémenter l'interface Comparator et de réécrire la méthode de comparaison. Le processus de mise en œuvre spécifique est celui mentionné ci-dessus, j'espère qu'il sera utile à tout le monde.

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!

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!