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.
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('Computer'); list.add(123); list.add('Hard Disk'); list.add('DRAM');
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('Volkswagen'); list.add('Toyota'); list.add('Porsche'); list.add('Ferrari'); list.add('Mercedes-Benz'); list.add('Audi'); list.add('Rolls-Royce'); list.add('BMW'); // printing the unsorted ArrayList System.out.println('Before Sorting: '+ list); // Sorting ArrayList in ascending Order Collections.sort(list); // printing the sorted ArrayList System.out.println('After Sorting: '+ 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('ArrayList Before Sorting:'); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in ascending order Collections.sort(list); //printing ArrayList after sorting System.out.println('ArrayList After Sorting:'); 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('Data Science'); list.add('Testing'); list.add('C#'); list.add('Basic Language'); list.add('UML'); list.add('Algorithms '); list.add('Computer Networks'); list.add('Python'); // printing the unsorted ArrayList System.out.println('Before Sorting: '+ list); // Sorting ArrayList in ascending Order // using Collection.sort() method Collections.sort(list, Collections.reverseOrder()); // Print the sorted ArrayList System.out.println('After Sorting: '+ 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('ArrayList Before Sorting:'); 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('ArrayList After Sorting:'); 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