logo

Java programma ArrayList kārtošanai

ArrayList ir klase, kas nodrošināta kolekcijas sistēmā. Programmā Java kolekcijas ietvars ir definēts pakotnē java.util. ArrayList tiek izmantots, lai dinamiski saglabātu elementus. Tas ir elastīgāks nekā masīvs, jo programmā ArrayList nav lieluma ierobežojumu. ArrayList datus saglabā nesakārtotā veidā. Dažos gadījumos mums ir jāpārkārto dati sakārtotā veidā.

Java ir divu veidu ArrayList. Viens no tiem ir Wrapper klases objektu ArrayList, bet otrs ir lietotāja definētu objektu ArrayList. Mēs redzēsim abu veidu ArrayList šķirošanu. Sāksim ar pirmo.

  1. Iesaiņojuma klases objektu ArrayList kārtošana.
    • Augoša secība
    • Dilstoša secība
  2. Lietotāja definētu objektu ArrayList kārtošana.
    • Salīdzināms
    • Salīdzinātājs

1. tips: iesaiņojuma klases objektu ArrayList kārtošana



ArrayList of Wrapper klases objekts ir tikai tādu objektu ArrayList kā virkne, veseli skaitļi utt. ArrayList var kārtot divos veidos augošā un dilstošā secībā. Kolekciju klase nodrošina divas metodes ArrayList kārtošanai. sort() un reverseOrder() attiecīgi augošā un dilstošā secībā.

10 no 40

1(A) augošā secībā

Šī sort() metode pieņem saraksta objektu kā parametru, un tā atgriezīs ArrayList, kas sakārtots augošā secībā. Sort() metodes sintakse ir līdzīga tālāk.

Collections.sort(objectOfArrayList);>

Visiem ArrayList elementiem jābūt savstarpēji salīdzināmiem, pretējā gadījumā tas izmet ClassCastException . Šeit savstarpēji salīdzināms nozīmē visus saraksta vienumus, kuriem ir vienāds datu tips.

ArrayList list = new ArrayList(); list.add(132); list.add(321); list.add('India');>

Iepriekš minētajā piemērā redzams, ka sarakstā ir trīs elementi, no kuriem divi elementi ir vesela skaitļa tipa un viens ir virknes tipa. Divi elementi, kas ir veselā skaitļā, ir savstarpēji salīdzināmi, bet elements, kas ir String tipa, nav salīdzināms ar pārējiem diviem. Šajā gadījumā mēs varam iegūt ClassCastException. Tādējādi sarakstā ir jābūt tāda paša veida elementiem.

Apskatīsim šo piemēru, lai saprastu kārtošanu.

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

>

>

Izvade:

Before Sorting : [India, Pakistan, Srilanka, USA, Australia, Japan] After Sorting : [Australia, India, Japan, Pakistan, Srilanka, USA]>

1(B) dilstošā secībā

Lai kārtotu ArrayList dilstošā secībā, mēs izmantojam apgrieztā secībā() metode kā sort() metodes arguments. mēs nevaram tieši izsaukt reverseOrder() metodi. Šai metodei ir divi parametri, viens ir ArrayList objekts, bet otrs parametrs ir Collections.reversOrder() metode. Šī metode atgriezīs ArrayList dilstošā secībā. Līdzīgi kā sort() metodei, ArrayList ir jābūt savstarpēji salīdzināmam, pretējā gadījumā tas izmet ClassCastException .

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

Šeit šī metode vispirms sakārto vienumus augošā secībā, pēc tam mainīs kārtoto vienumu secību.

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

>

>

Izvade:

Linux kā pārdēvēt direktoriju
Before Sorting : [410, 250, 144, 967, 289, 315] After Sorting : [967, 410, 315, 289, 250, 144]>

2. Lietotāja definētu objektu ArrayList kārtošana

Lietotāja definētu objektu ArrayList nav nekas cits kā pielāgotu objektu ArrayL.ist. Java ir divas saskarnes, kuras var izmantot kolekcijas elementu kārtošanai. Salīdzināms un salīdzināms.

2(A) Salīdzināms

Salīdzināms nodrošina vienu šķirošanas secību. Ja izmantosim Comparable, tas ietekmēs sākotnējo klasi. Salīdzināms interfeiss nodrošina Salīdzinot ar() elementu kārtošanas metode. Java valodā salīdzināmu nodrošina java.lang pakotne. Mēs varam kārtot ArrayList, izsaucot Collections.sort(List) metode .

Piemērs: Šķirošana tiek veikta pēc noliktavā esošo automašīnu skaita.

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

>

>

Izvade:

2013 creta 10 2020 MG 13 2018 Kia 20 2017 Audi 45 2015 BMW 50>

2(B) Salīdzinājums

Comparator nodrošina vairākas šķirošanas secības. Salīdzinātājs neietekmēs sākotnējo klasi. Salīdzinātājs nodrošina salīdzināt() elementu kārtošanas metode. Java valodā salīdzināmu nodrošina java.util pakotne. Mēs varam kārtot ArrayList, izsaucot metodi Collections.sort(List, Comparator). Ņemsim vienu piemēru.

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

>

>

Izvade:

10 creta 2013 13 MG 2020 20 Kia 2018 45 Audi 2017 50 BMW 2015>