logo

Hvordan sortere ArrayList i Java

I Java, Samling er et rammeverk som gir grensesnitt ( Sett, liste, kø, etc.) og klasser ( ArrayList, LinkedList, etc.) for å lagre gruppen av objekter. Disse klassene lagrer data på en uordnet måte. Noen ganger må vi ordne data på en ordnet måte som er kjent som sortering . Sorteringen kan utføres på to måter enten i stigende eller synkende rekkefølge.

I denne delen vil vi lære hvordan sortere ArrayList i stigende og Synkende rekkefølge.

ArrayList

I Java , ArrayList er en klasse med samlingsrammeverk som er definert ijava.utilpakke. Den arver AbstractList-klassen. Den lagrer elementene dynamisk. Fordelen med ArrayList er at den ikke har noen størrelsesbegrensning. Den er mer fleksibel enn den tradisjonelle matrisen. Den kan ha dupliserte elementer. Vi kan også bruke alle metodene til List-grensesnittet fordi det implementerer Liste grensesnitt.

Vi kan sortere en ArrayList på to måter stigende og synkende rekkefølge. Samlinger-klassen gir to metoder for å sortere en ArrayList i Java.

    sortere() omvendt rekkefølge()

Collections.sort() Metode

En ArrayList kan sorteres ved å bruke sortere() metoden for Samlinger klasse i Java . Den aksepterer et objekt i ArrayList som en parameter som skal sorteres og returnerer en ArrayList sortert i stigende rekkefølge i henhold til den naturlige rekkefølgen av elementene.

historie i java

Syntaks

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

Huske: Alle elementene i ArrayList må være gjensidig sammenlignbare, ellers kaster den ClassCastException. Her betyr gjensidig sammenlignbar at listen må ha samme type elementer. Tenk for eksempel på kodebiten:

 //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 eksemplet ovenfor ser vi at en liste har fire elementer, hvorav tre elementer er av typen streng og ett er heltallstypen. De tre elementene som er i String er gjensidig sammenlignbare, men elementet som er av heltallstype er ikke sammenlignbart med de tre andre. Derfor må listen ha samme type elementer.

Collections.reverseOrder() Metode

Hvis vi vil sortere ArrayList inn synkende rekkefølge, Java-samlinger klasse gir omvendt rekkefølge() metode. Det lar oss sortere ArrayList i omvendt-leksikografisk rekkefølge.

Syntaks

 public static Comparator reverseOrder() 

Den returnerer en komparator som påtvinger det motsatte av den naturlige rekkefølgen på en samling objekter som implementerer Comparable-grensesnittet.

Husk at vi ikke direkte påkaller reverseOrder()-metoden. Vi bruker den sammen med Collection.sort() metode, som følger.

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

Derfor sorteres ArrayList i synkende rekkefølge i to trinn, først sorterer ArrayList dataene i stigende rekkefølge, etter at de sorterte dataene blir reversert av omvendt rekkefølge() metode.

La oss lage programmer som sorterer ArrayList i stigende rekkefølge.

javascript global variabel

Sorter ArrayList i stigende rekkefølge

I det følgende eksempelet har vi laget en ArrayList av typen String og lagt til noen elementer i den. Etter det har vi påkalt sort()-metoden til Collections-klassen og sendt objektet til ArrayList-klassen, dvs. listen som sorterer elementene i stigende rekkefø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); } } 

Produksjon:

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

La oss se et annet eksempel som sorterer en ArrayList av typen heltall.

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

Produksjon:

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

Sorter ArrayList i synkende rekkefølge

I det følgende eksempelet har vi laget en ArrayList av typen String og lagt til noen elementer i den. Etter det har vi påkalt reverseOrder()-metoden sammen med sort()-metoden til Collections-klassen og sendt objektet til ArrayList-klassen, dvs. listen som sorterer elementene i synkende rekkefø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); } } 

Produksjon:

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

Produksjon:

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