logo

Hur man sorterar ArrayList i Java

I Java, Samling är ett ramverk som tillhandahåller gränssnitt ( Ställ in, lista, kö, etc.) och klasser ( ArrayList, LinkedList, etc.) för att lagra gruppen av objekt. Dessa klasser lagrar data på ett oordnat sätt. Ibland behöver vi ordna data på ett ordnat sätt som kallas sortering . Sorteringen kan utföras på två sätt antingen i stigande eller nedåtgående beställa.

I det här avsnittet kommer vi att lära oss hur man sorterar ArrayList i stigande och fallande ordning.

ArrayList

I Java , ArrayList är en klass av samlingsramverk som definieras ijava.utilpaket. Den ärver klassen AbstractList. Den lagrar elementen dynamiskt. Fördelen med ArrayList är att den inte har någon storleksbegränsning. Den är mer flexibel än den traditionella arrayen. Den kan ha dubbletter av element. Vi kan också använda alla metoder för List-gränssnittet eftersom det implementerar Lista gränssnitt.

Vi kan sortera en ArrayList på två sätt i stigande och fallande ordning. Klassen Collections tillhandahåller två metoder för att sortera en ArrayList i Java.

    sortera() omvänd ordning()

Collections.sort() Metod

En ArrayList kan sorteras genom att använda sortera() metod för Samlingsklass i Java . Den accepterar ett objekt i ArrayList som en parameter som ska sorteras och returnerar en ArrayList sorterad i stigande ordning enligt den naturliga ordningen av dess element.

gjuta int till sträng

Syntax

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

Kom ihåg: Alla element i ArrayList måste vara ömsesidigt jämförbara, annars kastar den ClassCastException. Här betyder ömsesidigt jämförbar att listan måste ha samma typ av element. Tänk till exempel på kodavsnittet:

 //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 exemplet ovan ser vi att en lista har fyra element, varav tre element är av String-typ och ett är heltalstyp. De tre elementen som finns i String är inbördes jämförbara men elementet som är av heltalstyp är inte jämförbart med de andra tre. Därför måste listan ha samma typ av element.

Collections.reverseOrder() Metod

Om vi ​​vill sortera ArrayList i nedåtgående beställa, Java-samlingar klass ger omvänd ordning() metod. Det låter oss sortera ArrayList i omvänd lexikografisk beställa.

Syntax

 public static Comparator reverseOrder() 

Den returnerar en komparator som påtvingar det omvända av den naturliga ordningen på en samling objekt som implementerar det jämförbara gränssnittet.

Kom ihåg att vi inte direkt anropar reverseOrder()-metoden. Vi använder den tillsammans med Collection.sort() metod enligt följande.

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

Därför, sorteringen av ArrayList i fallande ordning utförs i två steg, först sorterar ArrayList data i stigande ordning, efter det vänds den sorterade datan av omvänd ordning() metod.

Låt oss skapa program som sorterar ArrayList i stigande ordning.

switch statement java

Sortera ArrayList i stigande ordning

I följande exempel har vi skapat en ArrayList av typen String och lagt till några element i den. Efter det har vi anropat sort()-metoden för klassen Collections och skickat objektet i klassen ArrayList, dvs en lista som sorterar elementen i stigande ordning.

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] 

Låt oss se ett annat exempel som sorterar en ArrayList av heltalstyp.

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 

Sortera ArrayList i fallande ordning

I följande exempel har vi skapat en ArrayList av typen String och lagt till några element i den. Efter det har vi anropat reverseOrder()-metoden tillsammans med sort()-metoden för klassen Collections och passerat objektet i klassen ArrayList, dvs. listan som sorterar elementen i fallande ordning.

SortArrayListExample3.java

sträng hitta c++
 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