logo

Kako sortirati ArrayList u Javi

U Javi, Kolekcija je okvir koji pruža sučelja ( Postavi, popis, red čekanja, itd.) i klase ( ArrayList, LinkedList, itd.) za pohranu grupe objekata. Ove klase pohranjuju podatke na neuređen način. Ponekad moramo rasporediti podatke na uređen način koji je poznat kao sortiranje . Razvrstavanje se može izvesti na dva načina ili u uzlazni ili silazni narudžba.

U ovom odjeljku naučit ćemo kako sortirati ArrayList u rastućem redu i silazni redoslijed.

ArrayList

U Java , ArrayList je klasa okvira zbirki koja je definirana ujava.utilpaket. Nasljeđuje klasu AbstractList. Dinamički pohranjuje elemente. Prednost ArrayList-a je u tome što nema ograničenja veličine. Fleksibilniji je od tradicionalnog niza. Može imati duplicirane elemente. Također možemo koristiti sve metode List sučelja jer implementira Popis sučelje.

ArrayList možemo sortirati na dva načina uzlaznim i silaznim redoslijedom. Klasa Collections pruža dvije metode za sortiranje ArrayList-a u Javi.

    vrsta() obrnuti redoslijed()

Metoda Collections.sort().

ArrayList se može sortirati pomoću vrsta() metoda Klasa zbirki u Javi . Prihvaća objekt ArrayList kao parametar za sortiranje i vraća ArrayList sortiran uzlaznim redoslijedom prema prirodnom redoslijedu njegovih elemenata.

instanciranje Jave

Sintaksa

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

Zapamtiti: Svi elementi u ArrayList-u moraju biti međusobno usporedivi, inače izbacuje ClassCastException. Ovdje međusobno usporedivi znači da popis mora imati istu vrstu elemenata. Na primjer, razmotrite isječak koda:

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

U gornjem primjeru vidimo da lista ima četiri elementa od kojih su tri elementa tipa String, a jedan je tipa Integer. Tri elementa koja se nalaze u nizu su međusobno usporediva, ali element koji je tipa Integer nije usporediv s ostala tri. Dakle, lista mora imati istu vrstu elemenata.

Metoda Collections.reverseOrder().

Ako želimo sortirati ArrayList u silazni narudžba, Java zbirke klasa pruža obrnuti redoslijed() metoda. Omogućuje nam sortiranje ArrayList-a reversno-leksikografski narudžba.

Sintaksa

 public static Comparator reverseOrder() 

Vraća komparator koji nameće obrnuti prirodni redoslijed na kolekciju objekata koji implementiraju sučelje Comparable.

Ne zaboravite da ne pozivamo izravno metodu reverseOrder(). Koristimo ga zajedno s Collection.sort() metoda, kako slijedi.

koji je urfi javed
 Collections.sort(objectOfArrayList, Collections.reverseOrder()); 

Stoga se sortiranje ArrayList silaznim redoslijedom vrši u dva koraka, prvo ArrayList sortira podatke uzlaznim redoslijedom, nakon toga se sortirani podaci obrnuto obrnuti redoslijed() metoda.

Kreirajmo programe koji poredaju ArrayList uzlaznim redoslijedom.

Poredaj ArrayList uzlaznim redoslijedom

U sljedećem primjeru stvorili smo ArrayList tipa String i dodali neke elemente u njega. Nakon toga pozvali smo metodu sort() klase Collections i proslijedili objekt klase ArrayList tj. listu koja sortira elemente uzlaznim redoslijedom.

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

Izlaz:

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

Pogledajmo još jedan primjer koji sortira ArrayList tipa Integer.

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

Izlaz:

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

Poredaj ArrayList silaznim redoslijedom

U sljedećem primjeru stvorili smo ArrayList tipa String i dodali neke elemente u njega. Nakon toga pozvali smo metodu reverseOrder() zajedno s metodom sort() klase Collections i proslijedili objekt klase ArrayList tj. popis koji sortira elemente silaznim redoslijedom.

razlika između večere i večere

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

Izlaz:

 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

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

Izlaz:

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