logo

Comment trier ArrayList en Java

En Java, Collection est un framework qui fournit des interfaces ( Ensemble, liste, file d'attente, etc.) et les cours ( ArrayList, LinkedList, etc.) pour stocker le groupe d’objets. Ces classes stockent les données de manière désordonnée. Parfois, nous devons organiser les données d'une manière ordonnée, appelée tri . Le tri peut être effectué de deux manières soit en Ascendant ou descendant commande.

Dans cette section, nous apprendrons comment trier ArrayList par ordre croissant et Ordre décroissant.

Liste des tableaux

Dans Java , Liste des tableaux est une classe de framework Collections définie dans lejava.utilemballer. Il hérite de la classe AbstractList. Il stocke dynamiquement les éléments. L’avantage d’ArrayList est qu’il n’a pas de limite de taille. Il est plus flexible que le tableau traditionnel. Il peut contenir des éléments en double. On peut également utiliser toutes les méthodes de l'interface List car elle implémente le Liste interface.

Nous pouvons trier une ArrayList de deux manières, par ordre croissant et décroissant. La classe Collections fournit deux méthodes pour trier une ArrayList en Java.

    trier() ordre inverse()

Méthode Collections.sort()

Une ArrayList peut être triée en utilisant le trier() méthode du Classe de collections en Java . Il accepte un objet de ArrayList comme paramètre à trier et renvoie une ArrayList triée par ordre croissant selon l'ordre naturel de ses éléments.

Rajinikanth

Syntaxe

 public static <t extends comparable> void sort(List list) </t>

Souviens-toi: Tous les éléments de l'ArrayList doivent être mutuellement comparables, sinon cela renvoie ClassCastException. Ici, mutuellement comparable signifie que la liste doit avoir le même type d’éléments. Par exemple, considérons l'extrait de code :

 //creating an instance of ArrayList that contains String type elements ArrayList list = new ArrayList(); list.add(&apos;Computer&apos;); list.add(123); list.add(&apos;Hard Disk&apos;); list.add(&apos;DRAM&apos;); 

Dans l'exemple ci-dessus, nous voyons qu'une liste comporte quatre éléments, dont trois éléments sont de type String et un est de type Integer. Les trois éléments de String sont mutuellement comparables, mais l'élément de type Integer n'est pas comparable aux trois autres. Par conséquent, la liste doit avoir le même type d’éléments.

Méthode Collections.reverseOrder()

Si nous voulons trier ArrayList dans descendant commande, Collections Java la classe fournit ordre inverse() méthode. Cela nous permet de trier l'ArrayList dans lexicographique inversé commande.

Syntaxe

 public static Comparator reverseOrder() 

Il renvoie un comparateur qui impose l'inverse de l'ordre naturel à une collection d'objets qui implémentent l'interface Comparable.

N'oubliez pas que nous n'invoquons pas directement la méthode reverseOrder(). Nous l'utilisons avec le Collection.sort() méthode, comme suit.

 Collections.sort(objectOfArrayList, Collections.reverseOrder()); 

Par conséquent, le tri de ArrayList par ordre décroissant s'effectue en deux étapes : d'abord, ArrayList trie les données par ordre croissant, après quoi les données triées sont inversées par le ordre inverse() méthode.

Créons des programmes qui trient ArrayList par ordre croissant.

concaténation de chaînes Java

Trier ArrayList par ordre croissant

Dans l'exemple suivant, nous avons créé une ArrayList de type String et y avons ajouté quelques éléments. Après cela, nous avons invoqué la méthode sort() de la classe Collections et passé l'objet de la classe ArrayList, c'est-à-dire la liste qui trie les éléments dans l'ordre croissant.

SortArrayListExample1.java

 import java.util.*; public class SortArrayListExample1 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Volkswagen&apos;); list.add(&apos;Toyota&apos;); list.add(&apos;Porsche&apos;); list.add(&apos;Ferrari&apos;); list.add(&apos;Mercedes-Benz&apos;); list.add(&apos;Audi&apos;); list.add(&apos;Rolls-Royce&apos;); list.add(&apos;BMW&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order Collections.sort(list); // printing the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

Sortir:

 Before Sorting: [Volkswagen, Toyota, Porsche, Ferrari, Mercedes-Benz, Audi, Rolls-Royce, BMW] After Sorting: [Audi, BMW, Ferrari, Mercedes-Benz, Porsche, Rolls-Royce, Toyota, Volkswagen] 

Voyons un autre exemple qui trie une ArrayList de type Integer.

exemple java lambda

SortArrayListExample2.java

 import java.util.*; public class SortArrayListExample2 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(55); list.add(34); list.add(98); list.add(67); list.add(39); list.add(76); list.add(81); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in ascending order Collections.sort(list); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

Sortir:

 ArrayList Before Sorting: 55 34 98 67 39 76 81 ArrayList After Sorting: 34 39 55 67 76 81 98 

Trier ArrayList par ordre décroissant

Dans l'exemple suivant, nous avons créé une ArrayList de type String et y avons ajouté quelques éléments. Après cela, nous avons invoqué la méthode reverseOrder() avec la méthode sort() de la classe Collections et passé l'objet de la classe ArrayList, c'est-à-dire la liste qui trie les éléments dans l'ordre décroissant.

SortArrayListExample3.java

 import java.util.*; public class SortArrayListExample3 { public static void main(String args[]) { // creating object of ArrayList class ArrayList list = new ArrayList(); // adding elements to the ArrayList list.add(&apos;Data Science&apos;); list.add(&apos;Testing&apos;); list.add(&apos;C#&apos;); list.add(&apos;Basic Language&apos;); list.add(&apos;UML&apos;); list.add(&apos;Algorithms &apos;); list.add(&apos;Computer Networks&apos;); list.add(&apos;Python&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order // using Collection.sort() method Collections.sort(list, Collections.reverseOrder()); // Print the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

Sortir:

 Before Sorting: [Data Science, Testing, C#, Basic Language, UML, Algorithms, Computer Networks, Python] After Sorting: [UML, Testing, Python, Data Science, Computer Networks, C#, Basic Language, Algorithms] 

SortArrayListExample4.java

 import java.util.*; public class SortArrayListExample4 { public static void main(String args[]) { //creating an object of ArrayList class ArrayList list = new ArrayList(); list.add(566); list.add(230); list.add(123); list.add(110); list.add(689); list.add(12); list.add(95); //printing ArrayList before sorting System.out.println(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in descending order Collections.sort(list, Collections.reverseOrder()); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

Sortir:

 ArrayList Before Sorting: 566 230 123 110 689 12 95 ArrayList After Sorting: 689 566 230 123 110 95 12