ArrayList je trieda poskytovaná v rámci kolekcie. V jazyku Java je rámec kolekcie definovaný v balíku java.util. ArrayList sa používa na dynamické ukladanie prvkov. Je flexibilnejší ako pole, pretože v ArrayList neexistuje žiadne obmedzenie veľkosti. ArrayList ukladá údaje neusporiadaným spôsobom. V niektorých prípadoch musíme údaje usporiadať usporiadaným spôsobom.
V jave sú dva typy ArrayList. Jedným je ArrayList objektov triedy Wrapper a druhým ArrayList objektov definovaných používateľom. Uvidíme triedenie oboch typov ArrayList. Začnime prvým.
- Triedenie ArrayList objektov triedy Wrapper.
- Vzostupné poradie
- Zostupné poradie
- Triedenie ArrayList objektov definovaných používateľom.
- Porovnateľné
- Porovnávač
Typ 1: Triedenie ArrayList objektov triedy Wrapper
Objekt triedy ArrayList of Wrapper nie je nič iné ako ArrayList objektov ako String, Integers atď. ArrayList možno triediť dvoma spôsobmi vzostupne a zostupne. Trieda kolekcie poskytuje dve metódy triedenia ArrayList. sort() a reverseOrder() pre vzostupné a zostupné poradie.
1(A) Vzostupne
Táto metóda sort() akceptuje objekt zoznamu ako parameter a vráti ArrayList zoradený vo vzostupnom poradí. Syntax pre metódu sort() je podobná nižšie.
Collections.sort(objectOfArrayList);>
Všetky prvky v ArrayList musia byť vzájomne porovnateľné, inak to hádže ClassCastException . Vzájomne porovnateľné tu znamená, že všetky položky zoznamu majú rovnaký dátový typ.
java generiká
ArrayList list = new ArrayList(); list.add(132); list.add(321); list.add('India');> Vo vyššie uvedenom príklade vidíme, že zoznam má tri prvky, z ktorých dva prvky sú typu Integer a jeden je typu String. Dva prvky, ktoré sú v Integer, sú vzájomne porovnateľné, ale prvok, ktorý je typu String, nie je porovnateľný s ostatnými dvoma. V tomto prípade môžeme získať ClassCastException. Preto musí zoznam obsahovať rovnaký typ prvkov.
Pozrime sa na nasledujúci príklad, aby sme pochopili triedenie.
Java
// Java Program to Sort an ArrayList> // import java.util package> import> java.util.*;> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Define an objects of ArrayList class> >ArrayList list =>new> ArrayList();> >// Adding elements to the ArrayList> >list.add(>'India'>);> >list.add(>'Pakistan'>);> >list.add(>'Srilanka'>);> >list.add(>'USA'>);> >list.add(>'Australia'>);> >list.add(>'Japan'>);> >// 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);> >}> }> |
>
>
Výkon:
Before Sorting : [India, Pakistan, Srilanka, USA, Australia, Japan] After Sorting : [Australia, India, Japan, Pakistan, Srilanka, USA]>
1(B) Zostupne
Na zoradenie ArrayList v zostupnom poradí používame obrátené poradie() metóda ako argument metódy sort(). nemôžeme priamo volať metódu reverseOrder(). Táto metóda má dva parametre, jeden je objekt ArrayList a druhý parameter je metóda Collections.reversOrder(). Táto metóda vráti ArrayList v zostupnom poradí. Podobne ako pri metóde sort() musí byť ArrayList vzájomne porovnateľné, inak vyhodí ClassCastException .
Collections.sort(objectOfArrayList, Collections.reverseOrder());>
Tu táto metóda najprv triedi položky vo vzostupnom poradí a potom obráti poradie zoradených položiek.
Java
// Java Program to Sort an ArrayList> // Importing generic java files> import> java.util.*;> public> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Define an objects of ArrayList class> >ArrayList list =>new> ArrayList();> >// Adding elements to the ArrayList> >list.add(>410>);> >list.add(>250>);> >list.add(>144>);> >list.add(>967>);> >list.add(>289>);> >list.add(>315>);> >// Printing the unsorted ArrayList> >System.out.println(>'Before Sorting : '> + list);> >// Sorting ArrayList in descending Order> >Collections.sort(list, Collections.reverseOrder());> >// Printing the sorted ArrayList> >System.out.println(>'After Sorting : '> + list);> >}> }> |
>
>
Výkon:
Before Sorting : [410, 250, 144, 967, 289, 315] After Sorting : [967, 410, 315, 289, 250, 144]>
2. Triedenie ArrayList objektov definovaných používateľom
ArrayList objektov definovaných používateľom nie je nič iné ako ArrayL.ist vlastných objektov. V jazyku Java existujú dve rozhrania, ktoré možno použiť na triedenie prvkov kolekcie. Porovnateľné a porovnávacie.
rolovacie koliesko nefunguje
2(A) Porovnateľné
Porovnateľné poskytuje jedinú postupnosť triedenia. Ak použijeme Porovnateľné, ovplyvní to pôvodnú triedu. Porovnateľné rozhranie poskytuje porovnať s() spôsob triedenia prvkov. V jave porovnateľné poskytuje balík java.lang. ArrayList môžeme triediť vyvolaním Collections.sort(List) metóda .
Príklad: Triedenie prebieha podľa počtu áut na sklade.
Java
// Java Program to Sort an ArrayList> // Importing generic java files> import> java.util.*;> // Implements comparable interface into custom class> class> Car>implements> Comparable {> >int> ModalNo;> >String name;> >int> stock;> >// Parameterized constructor of the class> >Car(>int> ModalNo, String name,>int> stock)> >{> >this>.ModalNo = ModalNo;> >this>.name = name;> >this>.stock = stock;> >}> >// Override the compareTo method> >public> int> compareTo(Car car)> >{> >if> (stock == car.stock)> >return> 0>;> >else> if> (stock>auto.sklad)> >return> 1>;> >else> >return> ->1>;> >}> }> // Main driver method> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Create the ArrayList object> >ArrayList c =>new> ArrayList();> >c.add(>new> Car(>2018>,>'Kia'>,>20>));> >c.add(>new> Car(>2020>,>'MG'>,>13>));> >c.add(>new> Car(>2013>,>'creta'>,>10>));> >c.add(>new> Car(>2015>,>'BMW'>,>50>));> >c.add(>new> Car(>2017>,>'Audi'>,>45>));> >// Call the sort function> >Collections.sort(c);> >// Iterate over ArrayList using for each loop> >for> (Car car : c) {> >// Print the sorted ArrayList> >System.out.println(car.ModalNo +>' '> + car.name> >+>' '> + car.stock);> >}> >}> }> |
>
c# vzorový kód
>
Výkon:
2013 creta 10 2020 MG 13 2018 Kia 20 2017 Audi 45 2015 BMW 50>
2(B) Komparátor
Komparátor poskytuje viacero triediacich sekvencií. Porovnávač neovplyvní pôvodnú triedu. Porovnávač poskytuje porovnať () spôsob triedenia prvkov. V jave porovnateľné poskytuje balík java.util. ArrayList môžeme triediť vyvolaním metódy Collections.sort(List, Comparator). Uveďme si jeden príklad.
Java
// Java Program to Sort an ArrayList> // Step 1: ImportingDB files> import> java.util.*;> // Class 1: Parent Class> class> Car {> >int> ModalNo;> >String name;> >int> stock;> >// Parameterized constructor> >Car(>int> ModalNo, String name,>int> stock)> >{> >this>.ModalNo = ModalNo;> >this>.name = name;> >this>.stock = stock;> >}> }> // Class 2: Child class> // creates the comparator for comparing stock value> class> StockComparator>implements> Comparator {> >// Function to compare> >public> int> compare(Car c1, Car c2)> >{> >if> (c1.stock == c2.stock)> >return> 0>;> >else> if> (c1.stock>c2.stock)> >return> 1>;> >else> >return> ->1>;> >}> }> class> GFG {> >// Main driver method> >public> static> void> main(String[] args)> >{> >// Create the ArrayList object> >ArrayList c =>new> ArrayList();> >c.add(>new> Car(>2018>,>'Kia'>,>20>));> >c.add(>new> Car(>2020>,>'MG'>,>13>));> >c.add(>new> Car(>2013>,>'creta'>,>10>));> >c.add(>new> Car(>2015>,>'BMW'>,>50>));> >c.add(>new> Car(>2017>,>'Audi'>,>45>));> >// Call the sort function> >Collections.sort(c,>new> StockComparator());> >// For each loop to iterate> >for> (Car car : c) {> > >// Print the sorted ArrayList> >System.out.println(car.stock +>' '> + car.name> >+>' '> + car.ModalNo);> >}> >}> }> |
>
>
Výkon:
10 creta 2013 13 MG 2020 20 Kia 2018 45 Audi 2017 50 BMW 2015>