logo

„Java“ programa, skirta rūšiuoti „ArrayList“.

„ArrayList“ yra klasė, pateikta rinkinio sistemoje. „Java“ rinkinio sistema yra apibrėžta java.util pakete. ArrayList naudojamas elementams dinamiškai saugoti. Jis yra lankstesnis nei masyvas, nes ArrayList nėra dydžio apribojimo. „ArrayList“ saugo duomenis netvarkingai. Kai kuriais atvejais mums reikia tvarkingai pertvarkyti duomenis.

„Java“ yra dviejų tipų „ArrayList“. Vienas yra „ArrayList of Wrapper“ klasės objektų, o kitas – „ArrayList“ vartotojo nustatytų objektų. Pamatysime abiejų tipų ArrayList rūšiavimą. Pradėkime nuo pirmojo.

  1. „ArrayList of Wrapper Class“ objektų rūšiavimas.
    • Didėjančia tvarka
    • Mažėjančia tvarka
  2. Vartotojo nustatytų objektų „ArrayList“ rūšiavimas.
    • Palyginamas
    • Palyginimas

1 tipas: „ArrayList of Wrapper Class“ objektų rūšiavimas



ArrayList of Wrapper klasės objektas yra ne kas kita, kaip ArrayList objektų, tokių kaip eilutė, sveikieji skaičiai ir kt. ArrayList galima rūšiuoti dviem būdais didėjančia ir mažėjančia tvarka. Kolekcijos klasė pateikia du ArrayList rūšiavimo būdus. sort() ir reverseOrder() atitinkamai didėjančia ir mažėjančia tvarka.

1(A) Didėjančia tvarka

Šis sort() metodas priima sąrašo objektą kaip parametrą ir grąžins ArrayList, surūšiuotą didėjančia tvarka. Sort() metodo sintaksė yra tokia, kaip toliau.

Collections.sort(objectOfArrayList);>

Visi ArrayList elementai turi būti tarpusavyje palyginami, kitaip jis meta ClassCastException . Čia tarpusavyje palyginami visi sąrašo elementai, turintys tą patį duomenų tipą.

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

Aukščiau pateiktame pavyzdyje matome, kad sąraše yra trys elementai, iš kurių du yra sveikojo skaičiaus, o vienas yra eilutės tipo. Du elementai, esantys sveikuoju skaičiumi, yra tarpusavyje palyginami, tačiau elemento, kuris yra eilutės tipo, negalima lyginti su kitais dviem. Tokiu atveju galime gauti ClassCastException. Taigi sąraše turi būti to paties tipo elementai.

Panagrinėkime šį pavyzdį, kad suprastume rūšiavimą.

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

>

>

Išvestis:

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

1(B) mažėjimo tvarka

Norėdami rūšiuoti ArrayList mažėjančia tvarka, naudojame Atvirkštinė tvarka() metodas kaip a sort() metodo argumentas. negalime tiesiogiai iškviesti reverseOrder() metodo. Šis metodas apima du parametrus, vienas yra ArrayList objektas, o antrasis parametras yra Collections.reversOrder() metodas. Šis metodas grąžins ArrayList mažėjimo tvarka. Panašus į sort() metodą, ArrayList turi būti palyginamas, kitaip jis meta ClassCastException .

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

Šis metodas pirmiausia surūšiuoja elementus didėjančia tvarka, tada pakeis rūšiuojamų elementų tvarką.

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

>

>

pridedant java eilutes

Išvestis:

Before Sorting : [410, 250, 144, 967, 289, 315] After Sorting : [967, 410, 315, 289, 250, 144]>

2. Vartotojo nustatytų objektų ArrayList rūšiavimas

Vartotojo nustatytų objektų ArrayList yra ne kas kita, kaip pasirinktinių objektų ArrayL.ist. „Java“ yra dvi sąsajos, kurias galima naudoti kolekcijos elementams rūšiuoti. Palyginamasis ir palyginamasis.

2(A) Palyginti

„Comparable“ suteikia vieną rūšiavimo seką. Jei naudosime Comparable, tai turės įtakos pradinei klasei. Palyginamoji sąsaja suteikia palyginti su() elementų rūšiavimo būdas. „Java“ programoje palyginamumą teikia java.lang paketas. Mes galime rūšiuoti ArrayList iškvietę Kolekcijos.rūšiavimo(sąrašo) metodas .

Pavyzdys: Rūšiavimas atliekamas pagal sandėlyje esančių automobilių skaičių.

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

>

>

Išvestis:

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

2(B) Palyginimas

Komparatorius pateikia kelias rūšiavimo sekas. Palyginimo priemonė neturės įtakos pradinei klasei. Komparatorius numato palyginti () elementų rūšiavimo būdas. „Java“ programoje palyginamumą teikia java.util paketas. Mes galime rūšiuoti ArrayList pasinaudodami Collections.sort(List, Comparator) metodu. Paimkime vieną pavyzdį.

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

>

>

Išvestis:

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