logo

Ako triediť ArrayList v Jave

v Jave Zbierka je rámec, ktorý poskytuje rozhrania ( Set, List, Front, atď.) a triedy ( ArrayList, LinkedList, atď.) na uloženie skupiny objektov. Tieto triedy ukladajú údaje neusporiadaným spôsobom. Niekedy potrebujeme usporiadať údaje usporiadaným spôsobom, ktorý je známy ako triedenie . Triedenie je možné vykonať dvoma spôsobmi buď v vzostupne alebo zostupne objednať.

V tejto časti sa naučíme ako triediť ArrayList vzostupne a zostupnom poradí.

ArrayList

In Java , ArrayList je trieda rámca kolekcií, ktorý je definovaný vjava.utilbalík. Zdedí triedu AbstractList. Dynamicky ukladá prvky. Výhodou ArrayList je, že nemá žiadne obmedzenie veľkosti. Je flexibilnejší ako tradičné pole. Môže obsahovať duplicitné prvky. Môžeme tiež použiť všetky metódy rozhrania List, pretože implementuje Zoznam rozhranie.

ArrayList môžeme triediť dvoma spôsobmi vzostupne a zostupne. Trieda Collections poskytuje dve metódy na triedenie ArrayList v jazyku Java.

    zoradiť () obrátené poradie()

Collections.sort() Metóda

ArrayList je možné triediť pomocou zoradiť () metóda Trieda kolekcií v jazyku Java . Prijíma objekt ArrayList ako parameter na triedenie a vracia ArrayList zoradený vo vzostupnom poradí podľa prirodzeného usporiadania jeho prvkov.

skvelý počítačový jazyk

Syntax

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

Pamätajte: Všetky prvky v ArrayList musia byť vzájomne porovnateľné, inak to hádže ClassCastException. Vzájomne porovnateľné tu znamená, že zoznam musí mať rovnaký typ prvkov. Zvážte napríklad útržok kódu:

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

Vo vyššie uvedenom príklade vidíme, že zoznam má štyri prvky, z ktorých tri prvky sú typu String a jeden je typu Integer. Tri prvky, ktoré sú v reťazci, sú vzájomne porovnateľné, ale prvok, ktorý je typu Integer, nie je porovnateľný s ostatnými tromi. Preto musí zoznam obsahovať rovnaký typ prvkov.

Collections.reverseOrder() metóda

Ak chceme triediť ArrayList v zostupne objednať, Kolekcie Java trieda poskytuje obrátené poradie() metóda. Umožňuje nám triediť ArrayList reverzno-lexikografické objednať.

Syntax

 public static Comparator reverseOrder() 

Vracia komparátor, ktorý vnucuje opak prirodzeného usporiadania kolekcii objektov, ktoré implementujú porovnateľné rozhranie.

Pamätajte, že metódu reverseOrder() priamo nevyvolávame. Používame ho spolu s Collection.sort() metódou, a to nasledovne.

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

Preto sa triedenie ArrayList v zostupnom poradí vykonáva v dvoch krokoch, najprv ArrayList zoradí dáta vo vzostupnom poradí, potom sa zoradené dáta obrátia obrátené poradie() metóda.

Poďme vytvoriť programy, ktoré triedia ArrayList vo vzostupnom poradí.

k-nn algoritmus

Zoradiť ArrayList vo vzostupnom poradí

V nasledujúcom príklade sme vytvorili ArrayList typu String a pridali sme doň niektoré prvky. Potom sme vyvolali metódu sort() triedy Collections a odovzdali objekt triedy ArrayList, t.j. zoznam, ktorý triedi prvky vo vzostupnom poradí.

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

Výkon:

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

Pozrime sa na ďalší príklad, ktorý triedi ArrayList typu Integer.

kedy vyšiel win 7

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

Výkon:

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

Zoradiť ArrayList v zostupnom poradí

V nasledujúcom príklade sme vytvorili ArrayList typu String a pridali sme doň niektoré prvky. Potom sme vyvolali metódu reverseOrder() spolu s metódou sort() triedy Collections a odovzdali objekt triedy ArrayList, t. j. zoznam, ktorý triedi prvky v zostupnom poradí.

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

Výkon:

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

Výkon:

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