logo

Az ArrayList rendezése Java-ban

Java nyelven, Gyűjtemény olyan keretrendszer, amely interfészeket biztosít ( Beállítás, lista, sor, stb.) és osztályok ( ArrayList, LinkedList, stb.) az objektumcsoport tárolására. Ezek az osztályok rendezetlen módon tárolják az adatokat. Néha az adatokat rendezett módon kell elrendeznünk, amelyet ún válogatás . A válogatás kétféleképpen hajtható végre emelkedő vagy ereszkedő rendelés.

Ebben a részben megtanuljuk hogyan kell rendezni az ArrayList növekvő sorrendben és csökkenő sorrend.

Tömb lista

Ban ben Jáva , Tömb lista a Collections keretrendszer egy osztálya, amelyet ajava.utilcsomag. Az AbstractList osztályt örökli. Dinamikusan tárolja az elemeket. Az ArrayList előnye, hogy nincs méretkorlátja. Rugalmasabb, mint a hagyományos tömb. Előfordulhat, hogy ismétlődő elemeket tartalmaz. A List interfész összes metódusát is használhatjuk, mert megvalósítja a Lista felület.

Az ArrayList-eket kétféleképpen rendezhetjük növekvő és csökkenő sorrendben. A Collections osztály két módszert biztosít az ArrayList rendezésére Java nyelven.

    fajta() fordított sorrendben()

Gyűjtemények.sort() Metódus

Az ArrayList a következővel rendezhető fajta() módszere a Gyűjtemények osztály Java nyelven . Elfogadja az ArrayList egy objektumát rendezési paraméterként, és egy ArrayList-et ad vissza, növekvő sorrendbe rendezve az elemei természetes sorrendjének megfelelően.

tojson java

Szintaxis

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

Emlékezik: Az ArrayList minden elemének egymással összehasonlíthatónak kell lennie, különben dob ClassCastException. Itt a kölcsönösen összehasonlítható azt jelenti, hogy a listának azonos típusú elemekkel kell rendelkeznie. Vegyük például a kódrészletet:

 //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 fenti példában azt látjuk, hogy egy listának négy eleme van, amelyek közül három String típusú, egy pedig Integer típusú. A Stringben található három elem egymással összehasonlítható, de az Integer típusú elem nem hasonlítható össze a másik hárommal. Ezért a listának azonos típusú elemeket kell tartalmaznia.

Collections.reverseOrder() metódus

Ha az ArrayList-et szeretnénk rendezni ereszkedő rendelés, Java gyűjtemények osztály biztosítja fordított sorrendben() módszer. Lehetővé teszi az ArrayList rendezését fordított-lexikografikus rendelés.

Szintaxis

 public static Comparator reverseOrder() 

Egy olyan összehasonlítót ad vissza, amely a természetes sorrend fordítottját írja elő az Összehasonlítható felületet megvalósító objektumok gyűjteményére.

Ne feledje, hogy nem hívjuk meg közvetlenül a reverseOrder() metódust. Együtt használjuk a Collection.sort() módszerrel, az alábbiak szerint.

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

Ezért az ArrayList csökkenő sorrendbe rendezése két lépésben történik, először az ArrayList növekvő sorrendbe rendezi az adatokat, majd a rendezett adatokat megfordítja a fordított sorrendben() módszer.

Készítsünk olyan programokat, amelyek növekvő sorrendben rendezik az ArrayList-et.

kiválasztási rendezés

Az ArrayList rendezése növekvő sorrendben

A következő példában létrehoztunk egy String típusú ArrayList-et, és hozzáadtunk néhány elemet. Ezt követően meghívtuk a Collections osztály sort() metódusát, és átadtuk az ArrayList osztály objektumát, azaz a listát, amely növekvő sorrendbe rendezi az elemeket.

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

Kimenet:

 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ássunk egy másik példát, amely egy Integer típusú ArrayList listát rendez.

foreach loop gépirat

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

Kimenet:

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

Az ArrayList rendezése csökkenő sorrendben

A következő példában létrehoztunk egy String típusú ArrayList-et, és hozzáadtunk néhány elemet. Ezt követően meghívtuk a reverseOrder() metódust a Collections osztály sort() metódusával együtt, és átadtuk az ArrayList osztály objektumát, azaz a listát, amely csökkenő sorrendbe rendezi az elemeket.

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

Kimenet:

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

Kimenet:

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