ArrayList on Collection-kehyksen tarjoama luokka. Javassa kokoelmakehys määritellään java.util-paketissa. ArrayListiä käytetään elementtien dynaamiseen tallentamiseen. Se on joustavampi kuin taulukko, koska ArrayListissä ei ole kokorajoitusta. ArrayList tallentaa tiedot järjestämättömällä tavalla. Joissain tapauksissa meidän on järjestettävä tiedot uudelleen järjestykseen.
kassalle gitillä
Javassa on kahdenlaisia ArrayList-tiedostoja. Toinen on ArrayList of Wrapper-luokan objekteista ja toinen on käyttäjän määrittämien objektien ArrayList. Näemme molempien ArrayList-tyyppien lajittelun. Aloitetaan ensimmäisestä.
- ArrayList of Wrapper Class -objektien lajittelu.
- Nousevassa järjestyksessä
- Laskeva järjestys
- Käyttäjän määrittämien objektien ArrayListin lajittelu.
- Vertailukelpoinen
- Vertailija
Tyyppi 1: ArrayList of Wrapper Class -objektien lajittelu
ArrayList of Wrapper-luokan objekti ei ole muuta kuin ArrayList objekteista, kuten merkkijono, kokonaisluku jne. ArrayList voidaan lajitella kahdella tavalla nousevaan ja laskevaan järjestykseen. Kokoelmaluokka tarjoaa kaksi menetelmää ArrayListin lajitteluun. sort() ja reverseOrder() nousevaan ja laskevaan järjestykseen.
1(A) Nousevassa järjestyksessä
Tämä sort()-menetelmä hyväksyy listaobjektin parametriksi ja palauttaa ArrayListin nousevaan järjestykseen. Sort()-menetelmän syntaksi on kuten alla.
Collections.sort(objectOfArrayList);>
Kaikkien ArrayListin elementtien on oltava keskenään vertailukelpoisia, muuten se heittää ClassCastException . Tässä keskenään vertailukelpoinen tarkoittaa kaikkia luettelon kohteita, joilla on sama tietotyyppi.
ArrayList list = new ArrayList(); list.add(132); list.add(321); list.add('India');> Yllä olevassa esimerkissä näemme, että luettelossa on kolme elementtiä, joista kaksi elementtiä on Integer-tyyppiä ja yksi on merkkijonotyyppiä. Kaksi kokonaislukua olevaa elementtiä ovat keskenään vertailukelpoisia, mutta merkkijonotyyppinen elementti ei ole vertailukelpoinen kahden muun kanssa. Tässä tapauksessa voimme saada ClassCastExceptionin. Tästä syystä luettelossa on oltava samantyyppisiä elementtejä.
Tarkastellaan seuraavaa esimerkkiä lajittelun ymmärtämiseksi.
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);> >}> }> |
>
>
Lähtö:
Before Sorting : [India, Pakistan, Srilanka, USA, Australia, Japan] After Sorting : [Australia, India, Japan, Pakistan, Srilanka, USA]>
1(B) Laskeva järjestys
Käytämme ArrayListin lajittelemiseksi laskevaan järjestykseen käänteinen järjestys() menetelmä sort()-metodin argumenttina. emme voi kutsua suoraan reverseOrder()-metodia. Tämä menetelmä ottaa kaksi parametria, joista toinen on ArrayList-objekti ja toinen parametri on Collections.reversOrder()-metodi. Tämä menetelmä palauttaa ArrayListin laskevassa järjestyksessä. Sort()-menetelmän tapaan ArrayListin on oltava keskenään vertailukelpoinen, muuten se heittää ClassCastException .
Collections.sort(objectOfArrayList, Collections.reverseOrder());>
Tässä tämä menetelmä lajittelee ensin kohteet nousevaan järjestykseen, sitten se kääntää lajiteltujen kohteiden järjestyksen.
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);> >}> }> |
>
>
Lähtö:
Before Sorting : [410, 250, 144, 967, 289, 315] After Sorting : [967, 410, 315, 289, 250, 144]>
2. Lajittele käyttäjän määrittämien objektien ArrayList
ArrayList of User-defined Objects ei ole mitään muuta kuin mukautettujen objektien ArrayL.ist. Javassa on kaksi rajapintaa, joita voidaan käyttää kokoelmaelementtien lajitteluun. Vertaileva ja vertailtava.
2(A) Vertailukelpoinen
Vertailukelpoinen tarjoaa yhden lajittelujärjestyksen. Jos käytämme Comparablea, se vaikuttaa alkuperäiseen luokkaan. Vertailukelpoinen käyttöliittymä tarjoaa vertaa() tapa lajitella elementtejä. Javassa vertailukelpoisen tarjoaa java.lang-paketti. Voimme lajitella ArrayListin kutsumalla Collections.sort(List) -menetelmä .
Esimerkki: Lajittelu tapahtuu varastossa olevien autojen määrän perusteella.
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.varasto)> >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);> >}> >}> }> |
>
>
Lähtö:
2013 creta 10 2020 MG 13 2018 Kia 20 2017 Audi 45 2015 BMW 50>
2(B) Vertailija
Comparator tarjoaa useita lajittelusarjoja. Vertailu ei vaikuta alkuperäiseen luokkaan. Comparator tarjoaa vertailla() tapa lajitella elementtejä. Javassa vertailukelpoisen tarjoaa java.util-paketti. ArrayList voidaan lajitella käyttämällä Collections.sort(List, Comparator) -metodia. Otetaan yksi esimerkki.
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);> >}> >}> }> |
komento chown
>
>
Lähtö:
10 creta 2013 13 MG 2020 20 Kia 2018 45 Audi 2017 50 BMW 2015>