logo

Hoe ArrayList in Java te sorteren

Op Java, Verzameling is een raamwerk dat interfaces biedt ( Instellen, Lijst, Wachtrij, enz.) en klassen ( ArrayList, LinkedList, etc.) om de groep objecten op te slaan. Deze klassen slaan gegevens op een ongeordende manier op. Soms moeten we gegevens op een geordende manier ordenen, ook wel bekend als sorteren . Het sorteren kan op twee manieren worden uitgevoerd: oplopend of aflopend volgorde.

In dit gedeelte zullen we leren hoe ArrayList oplopend te sorteren En aflopende volgorde.

ArrayLijst

In Java , ArrayLijst is een klasse van Collections-framework dat is gedefinieerd in dejava.utilpakket. Het neemt de klasse AbstractList over. Het slaat de elementen dynamisch op. Het voordeel van ArrayList is dat er geen maximale grootte is. Het is flexibeler dan de traditionele array. Het kan dubbele elementen bevatten. We kunnen ook alle methoden van de List-interface gebruiken omdat deze de Lijst koppel.

We kunnen een ArrayList op twee manieren in oplopende en aflopende volgorde sorteren. De klasse Collections biedt twee methoden om een ​​ArrayList in Java te sorteren.

    soort() omgekeerde volgorde()

Collections.sort() Methode

Een ArrayList kan worden gesorteerd met behulp van de soort() werkwijze van de Collectieklasse in Java . Het accepteert een object van ArrayList als parameter om te sorteren en retourneert een ArrayList gesorteerd in oplopende volgorde volgens de natuurlijke volgorde van de elementen ervan.

if-else java

Syntaxis

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

Herinneren: Alle elementen in de ArrayList moeten onderling vergelijkbaar zijn, anders wordt er gegooid ClassCastException. Onderling vergelijkbaar betekent hier dat de lijst hetzelfde type elementen moet bevatten. Beschouw bijvoorbeeld het fragment van 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;); 

In het bovenstaande voorbeeld zien we dat een lijst vier elementen bevat, waarvan drie elementen van het type String zijn en één van het type Integer. De drie elementen in String zijn onderling vergelijkbaar, maar het element van het type Integer is niet vergelijkbaar met de andere drie. Daarom moet de lijst hetzelfde type elementen bevatten.

Collections.reverseOrder()-methode

Als we ArrayList willen sorteren aflopend volgorde, Java-collecties klasse biedt omgekeerde volgorde() methode. Hiermee kunnen we de ArrayList sorteren omgekeerd-lexicografisch volgorde.

Syntaxis

 public static Comparator reverseOrder() 

Het retourneert een comparator die het omgekeerde van de natuurlijke ordening oplegt aan een verzameling objecten die de Comparable-interface implementeren.

Houd er rekening mee dat we de methode reverseOrder() niet rechtstreeks aanroepen. Wij gebruiken het samen met de Collectie.sort() methode, als volgt.

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

Daarom wordt het sorteren van ArrayList in aflopende volgorde in twee stappen uitgevoerd. Eerst sorteert ArrayList de gegevens in oplopende volgorde, waarna de gesorteerde gegevens worden omgekeerd door de omgekeerde volgorde() methode.

Laten we programma's maken die ArrayList in oplopende volgorde sorteren.

powershell meerregelig commentaar

Sorteer ArrayList in oplopende volgorde

In het volgende voorbeeld hebben we een ArrayList van het type String gemaakt en er enkele elementen aan toegevoegd. Daarna hebben we de methode sort() van de klasse Collections aangeroepen en het object van de klasse ArrayList doorgegeven, d.w.z. een lijst die de elementen in oplopende volgorde sorteert.

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

Uitgang:

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

Laten we nog een voorbeeld bekijken waarin een ArrayList van het type Integer wordt gesorteerd.

Java-lijst maken

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

Uitgang:

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

Sorteer ArrayList in aflopende volgorde

In het volgende voorbeeld hebben we een ArrayList van het type String gemaakt en er enkele elementen aan toegevoegd. Daarna hebben we de methode reverseOrder() aangeroepen samen met de methode sort() van de klasse Collections en het object van de klasse ArrayList doorgegeven, d.w.z. een lijst die de elementen in aflopende volgorde sorteert.

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

Uitgang:

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

Uitgang:

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