logo

Sådan sorteres ArrayList i Java

I Java, Kollektion er en ramme, der giver grænseflader ( Sæt, liste, kø, osv.) og klasser ( ArrayList, LinkedList, osv.) for at gemme gruppen af ​​objekter. Disse klasser gemmer data på en uordnet måde. Nogle gange er vi nødt til at arrangere data på en ordnet måde, som er kendt som sortering . Sorteringen kan udføres på to måder enten i stigende eller aftagende bestille.

I dette afsnit vil vi lære hvordan man sorterer ArrayList i stigende og faldende rækkefølge.

ArrayList

I Java , ArrayList er en klasse af samlingsramme, der er defineret ijava.utilpakke. Den arver klassen AbstractList. Det gemmer elementerne dynamisk. Fordelen ved ArrayList er, at den ikke har nogen størrelsesbegrænsning. Det er mere fleksibelt end det traditionelle array. Det kan have duplikerede elementer. Vi kan også bruge alle metoderne til List-grænsefladen, fordi den implementerer Liste interface.

Vi kan sortere en ArrayList på to måder stigende og faldende rækkefølge. Klassen Collections giver to metoder til at sortere en ArrayList i Java.

    sortere() omvendt rækkefølge()

Collections.sort() Metode

En ArrayList kan sorteres ved at bruge sortere() metoden til Samlinger klasse i Java . Den accepterer et objekt i ArrayList som en parameter, der skal sorteres, og returnerer en ArrayList sorteret i stigende rækkefølge i henhold til den naturlige rækkefølge af dens elementer.

fil åben i java

Syntaks

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

Husk: Alle elementer i ArrayList skal være gensidigt sammenlignelige, ellers kaster den ClassCastException. Her betyder gensidigt sammenlignelig, at listen skal have samme type elementer. Overvej f.eks. kodestykket:

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

I ovenstående eksempel ser vi, at en liste har fire elementer, hvoraf tre elementer er af String-typen og et er Heltal-typen. De tre elementer, der er i String, er indbyrdes sammenlignelige, men elementet, der er af heltalstypen, er ikke sammenligneligt med de tre andre. Derfor skal listen have den samme type elementer.

Collections.reverseOrder() Metode

Hvis vi vil sortere ArrayList i aftagende bestille, Java samlinger klasse giver omvendt rækkefølge() metode. Det giver os mulighed for at sortere ArrayList omvendt-leksikografisk bestille.

Syntaks

 public static Comparator reverseOrder() 

Det returnerer en komparator, der pålægger en samling objekter, der implementerer den sammenlignelige grænseflade, det omvendte af den naturlige rækkefølge.

Husk, at vi ikke direkte påberåber os reverseOrder()-metoden. Vi bruger det sammen med Collection.sort() metode som følger.

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

Derfor sorteres ArrayList i faldende rækkefølge i to trin, først sorterer ArrayList dataene i stigende rækkefølge, hvorefter de sorterede data vendes af omvendt rækkefølge() metode.

Lad os oprette programmer, der sorterer ArrayList i stigende rækkefølge.

if else statement java

Sorter ArrayList i stigende rækkefølge

I det følgende eksempel har vi oprettet en ArrayList af typen String og tilføjet nogle elementer til den. Derefter har vi påberåbt sort()-metoden for Collections-klassen og bestået objektet i ArrayList-klassen, dvs. listen, der sorterer elementerne i stigende rækkefølge.

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

Produktion:

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

Lad os se et andet eksempel, der sorterer en ArrayList af Integer-typen.

hvad er myspace

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

Produktion:

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

Sorter ArrayList i faldende rækkefølge

I det følgende eksempel har vi oprettet en ArrayList af typen String og tilføjet nogle elementer til den. Derefter har vi påberåbt reverseOrder()-metoden sammen med sort()-metoden for Collections-klassen og bestået objektet i ArrayList-klassen, dvs. listen, der sorterer elementerne i faldende rækkefølge.

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

Produktion:

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

Produktion:

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