logo

Kuinka lajitella ArrayList Javassa

Javalla, Kokoelma on kehys, joka tarjoaa rajapintoja ( Sarja, Lista, Jono, jne.) ja luokat ( ArrayList, LinkedList, jne.) objektiryhmän tallentamiseen. Nämä luokat tallentavat tietoja järjestämättömällä tavalla. Joskus meidän on järjestettävä tiedot järjestetyllä tavalla, joka tunnetaan nimellä lajittelu . Lajittelu voidaan suorittaa kahdella tavalla joko sisään nouseva tai laskeva Tilaus.

Tässä osiossa opimme kuinka ArrayList lajitellaan nousevasti ja laskeva järjestys.

ArrayList

Sisään Java , ArrayList on Kokoelmien kehys, joka on määritelty kohdassajava.utilpaketti. Se perii AbstractList-luokan. Se tallentaa elementit dynaamisesti. ArrayListin etuna on, että sillä ei ole kokorajoitusta. Se on joustavampi kuin perinteinen matriisi. Siinä voi olla päällekkäisiä elementtejä. Voimme myös käyttää kaikkia List-rajapinnan menetelmiä, koska se toteuttaa Lista käyttöliittymä.

Voimme lajitella ArrayListin kahdella tavalla nousevaan ja laskevaan järjestykseen. Kokoelmat-luokka tarjoaa kaksi tapaa lajitella ArrayList Javassa.

    järjestellä() käänteinen järjestys()

Collections.sort() -menetelmä

ArrayList voidaan lajitella käyttämällä järjestellä() menetelmä Kokoelmat-luokka Javassa . Se hyväksyy ArrayList-objektin lajiteltavaksi parametriksi ja palauttaa ArrayList-objektin lajiteltuna nousevaan järjestykseen sen elementtien luonnollisen järjestyksen mukaan.

java värikoodit

Syntaksi

 public static <t extends comparable> void sort(List list) </t>

Muistaa: Kaikkien ArrayListin elementtien on oltava keskenään vertailukelpoisia, muuten se heittää ClassCastException. Tässä keskenään vertailukelpoinen tarkoittaa, että luettelossa on oltava samantyyppisiä elementtejä. Harkitse esimerkiksi koodinpätkää:

 //creating an instance of ArrayList that contains String type elements ArrayList list = new ArrayList(); list.add(&apos;Computer&apos;); list.add(123); list.add(&apos;Hard Disk&apos;); list.add(&apos;DRAM&apos;); 

Yllä olevassa esimerkissä näemme, että luettelossa on neljä elementtiä, joista kolme elementtiä on merkkijonotyyppiä ja yksi on kokonaislukutyyppiä. Merkkijonossa olevat kolme elementtiä ovat keskenään vertailukelpoisia, mutta kokonaislukutyyppinen elementti ei ole vertailukelpoinen kolmen muun kanssa. Tästä syystä luettelossa on oltava samantyyppisiä elementtejä.

Collections.reverseOrder() -menetelmä

Jos haluamme lajitella ArrayListin laskeva Tilaus, Java-kokoelmat luokka tarjoaa käänteinen järjestys() menetelmä. Sen avulla voimme lajitella ArrayListin käänteisleksikografinen Tilaus.

Syntaksi

lajittele arraylist javassa
 public static Comparator reverseOrder() 

Se palauttaa vertailijan, joka asettaa päinvastaisen luonnollisen järjestyksen kokoelmalle objekteja, jotka toteuttavat vertailurajapinnan.

Muista, että emme suoraan kutsu reverseOrder()-metodia. Käytämme sitä yhdessä Collection.sort() menetelmällä seuraavasti.

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

Siksi ArrayListin lajittelu laskevaan järjestykseen tapahtuu kahdessa vaiheessa, ensin ArrayList lajittelee tiedot nousevaan järjestykseen, jonka jälkeen lajitellut tiedot käännetään käänteinen järjestys() menetelmä.

Luodaan ohjelmia, jotka lajittelevat ArrayListin nousevaan järjestykseen.

Lajittele ArrayList nousevaan järjestykseen

Seuraavassa esimerkissä olemme luoneet ArrayList-tyypin String ja lisänneet siihen elementtejä. Tämän jälkeen olemme käynnistäneet Collections-luokan sort()-menetelmän ja ohittaneet ArrayList-luokan objektin eli listan, joka lajittelee elementit nousevaan järjestykseen.

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(&apos;Volkswagen&apos;); list.add(&apos;Toyota&apos;); list.add(&apos;Porsche&apos;); list.add(&apos;Ferrari&apos;); list.add(&apos;Mercedes-Benz&apos;); list.add(&apos;Audi&apos;); list.add(&apos;Rolls-Royce&apos;); list.add(&apos;BMW&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order Collections.sort(list); // printing the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

Lähtö:

 Before Sorting: [Volkswagen, Toyota, Porsche, Ferrari, Mercedes-Benz, Audi, Rolls-Royce, BMW] After Sorting: [Audi, BMW, Ferrari, Mercedes-Benz, Porsche, Rolls-Royce, Toyota, Volkswagen] 

Katsotaanpa toinen esimerkki, joka lajittelee kokonaislukutyypin ArrayListin.

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(&apos;ArrayList Before Sorting:&apos;); for(int marks: list) { System.out.println(marks); } //sorting ArrayList in ascending order Collections.sort(list); //printing ArrayList after sorting System.out.println(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

Lähtö:

 ArrayList Before Sorting: 55 34 98 67 39 76 81 ArrayList After Sorting: 34 39 55 67 76 81 98 

Lajittele ArrayList laskevaan järjestykseen

Seuraavassa esimerkissä olemme luoneet ArrayList-tyypin String ja lisänneet siihen elementtejä. Sen jälkeen olemme käynnistäneet reverseOrder()-menetelmän yhdessä Collections-luokan sort()-metodin kanssa ja ohittaneet ArrayList-luokan objektin eli listan, joka lajittelee elementit laskevaan järjestykseen.

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(&apos;Data Science&apos;); list.add(&apos;Testing&apos;); list.add(&apos;C#&apos;); list.add(&apos;Basic Language&apos;); list.add(&apos;UML&apos;); list.add(&apos;Algorithms &apos;); list.add(&apos;Computer Networks&apos;); list.add(&apos;Python&apos;); // printing the unsorted ArrayList System.out.println(&apos;Before Sorting: &apos;+ list); // Sorting ArrayList in ascending Order // using Collection.sort() method Collections.sort(list, Collections.reverseOrder()); // Print the sorted ArrayList System.out.println(&apos;After Sorting: &apos;+ list); } } 

Lähtö:

 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

harhaa ja varianssia
 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(&apos;ArrayList Before Sorting:&apos;); 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(&apos;ArrayList After Sorting:&apos;); for(int marks: list) { System.out.println(marks); } } } 

Lähtö:

 ArrayList Before Sorting: 566 230 123 110 689 12 95 ArrayList After Sorting: 689 566 230 123 110 95 12