logo

Com ordenar ArrayList a Java

A Java, Col · lecció és un framework que proporciona interfícies ( Conjunt, llista, cua, etc.) i classes ( ArrayList, LinkedList, etc.) per emmagatzemar el grup d'objectes. Aquestes classes emmagatzemen dades de manera no ordenada. De vegades necessitem organitzar les dades d'una manera ordenada que es coneix com classificació . L'ordenació es pot realitzar de dues maneres ascendent o descendent ordre.

En aquest apartat, aprendrem com ordenar ArrayList en ordre ascendent i ordre descendent.

ArrayList

En Java , ArrayList és una classe de marc de col·leccions que es defineix ajava.utilpaquet. Hereta la classe AbstractList. Emmagatzema dinàmicament els elements. L'avantatge d'ArrayList és que no té límit de mida. És més flexible que la matriu tradicional. Pot tenir elements duplicats. També podem utilitzar tots els mètodes de la interfície List perquè implementa el Llista interfície.

Podem ordenar una ArrayList de dues maneres ascendent i descendent. La classe Collections proporciona dos mètodes per ordenar una ArrayList a Java.

    ordenar () ordre invers()

Collections.sort() Mètode

Una ArrayList es pot ordenar mitjançant l' ordenar () mètode de la Classe de col·leccions en Java . Accepta un objecte de ArrayList com a paràmetre a ordenar i retorna una ArrayList ordenada en ordre ascendent segons l'ordenació natural dels seus elements.

Madhuri va dir vinga

Sintaxi

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

Recordeu: Tots els elements de la ArrayList han de ser mútuament comparables, en cas contrari es llança ClassCastException. Aquí, comparables mútuament significa que la llista ha de tenir el mateix tipus d'elements. Per exemple, considereu el fragment del codi:

 //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;); 

A l'exemple anterior, veiem que una llista té quatre elements dels quals tres són de tipus String i un és de tipus Integer. Els tres elements que es troben a String són mútuament comparables, però l'element que és de tipus Integer no és comparable amb els altres tres. Per tant, la llista ha de tenir el mateix tipus d'elements.

Collections.reverseOrder() Mètode

Si volem ordenar ArrayList descendent ordre, Col·leccions Java la classe ofereix ordre invers() mètode. Ens permet ordenar la ArrayList lexicogràfic invers ordre.

Sintaxi

gzip per a Linux
 public static Comparator reverseOrder() 

Retorna un comparador que imposa el contrari de l'ordenació natural a una col·lecció d'objectes que implementen la interfície Comparable.

Recordeu que no invoquem directament el mètode reverseOrder(). El fem servir juntament amb el Collection.sort() mètode, de la següent manera.

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

Per tant, l'ordenació de ArrayList en ordre descendent es fa en dos passos, primer la ArrayList ordena les dades en ordre ascendent, després les dades ordenades s'inverteixen pel ordre invers() mètode.

Creem programes que ordenin ArrayList en ordre ascendent.

Ordena ArrayList en ordre ascendent

A l'exemple següent, hem creat una ArrayList de tipus String i hi hem afegit alguns elements. Després d'això, hem invocat el mètode sort() de la classe Collections i hem passat l'objecte de la classe ArrayList, és a dir, una llista que ordena els elements en ordre ascendent.

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); } } 

Sortida:

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

Vegem un altre exemple que ordena una ArrayList de tipus Integer.

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); } } } 

Sortida:

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

Ordena ArrayList en ordre descendent

A l'exemple següent, hem creat una ArrayList de tipus String i hi hem afegit alguns elements. Després d'això, hem invocat el mètode reverseOrder() juntament amb el mètode sort() de la classe Collections i hem passat l'objecte de la classe ArrayList, és a dir, una llista que ordena els elements en ordre descendent.

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); } } 

Sortida:

 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

char + int en 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); } } } 

Sortida:

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