logo

Cum să sortați ArrayList în Java

În Java, Colectie este un cadru care oferă interfețe ( Set, listă, coadă, etc.) și clase ( ArrayList, LinkedList, etc.) pentru a stoca grupul de obiecte. Aceste clase stochează datele într-un mod neordonat. Uneori trebuie să aranjam datele într-o manieră ordonată, cunoscută ca triere . Sortarea poate fi efectuată în două moduri fie în ascendent sau Descendentă Ordin.

În această secțiune, vom învăța cum să sortați ArrayList în creștere și ordine descrescatoare.

ArrayList

În Java , ArrayList este o clasă de cadru de colecții care este definită înjava.utilpachet. Moștenește clasa AbstractList. Stochează dinamic elementele. Avantajul ArrayList este că nu are limită de dimensiune. Este mai flexibil decât matricea tradițională. Poate avea elemente duplicate. De asemenea, putem folosi toate metodele interfeței List, deoarece implementează Listă interfata.

Putem sorta un ArrayList în două moduri, în ordine crescătoare și descrescătoare. Clasa Collections oferă două metode de sortare a unui ArrayList în Java.

    fel() ordine inversă()

Collections.sort() Metoda

O ArrayList poate fi sortată utilizând fel() metoda de Clasa de colecții în Java . Acceptă un obiect din ArrayList ca parametru de sortat și returnează un ArrayList sortat în ordine crescătoare în funcție de ordinea naturală a elementelor sale.

cum se convertesc șir în char

Sintaxă

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

Tine minte: Toate elementele din ArrayList trebuie să fie reciproc comparabile, altfel se aruncă ClassCastException. Aici, comparabil înseamnă că lista trebuie să aibă același tip de elemente. De exemplu, luați în considerare fragmentul de cod:

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

În exemplul de mai sus, vedem că o listă are patru elemente din care trei elemente sunt de tip String și unul este de tip Integer. Cele trei elemente care sunt în String sunt comparabile reciproc, dar elementul care este de tip Integer nu este comparabil cu celelalte trei. Prin urmare, lista trebuie să aibă același tip de elemente.

Collections.reverseOrder() Metoda

Dacă vrem să sortăm ArrayList în Descendentă Ordin, Colecții Java clasa oferă ordine inversă() metodă. Ne permite să sortăm ArrayList revers-lexicografic Ordin.

Sintaxă

 public static Comparator reverseOrder() 

Returnează un comparator care impune inversul ordinii naturale pe o colecție de obiecte care implementează interfața Comparable.

Amintiți-vă că nu invocăm direct metoda reverseOrder(). Îl folosim împreună cu Collection.sort() metoda, după cum urmează.

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

Prin urmare, sortarea ArrayList în ordine descrescătoare se face în doi pași, mai întâi ArrayList sortează datele în ordine crescătoare, după care datele sortate sunt inversate de către ordine inversă() metodă.

Să creăm programe care sortează ArrayList în ordine crescătoare.

Sortați ArrayList în ordine crescătoare

În exemplul următor, am creat o ArrayList de tip String și am adăugat câteva elemente în ea. După aceea am invocat metoda sort() a clasei Collections și am trecut obiectul clasei ArrayList, adică o listă care sortează elementele în ordine crescătoare.

SortArrayListExample1.java

concat șiruri de caractere 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); } } 

Ieșire:

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

Să vedem un alt exemplu care sortează un ArrayList de tip Integer.

SortArrayListExample2.java

cum se deschide un fișier json
 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); } } } 

Ieșire:

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

Sortați ArrayList în ordine descrescătoare

În exemplul următor, am creat o ArrayList de tip String și am adăugat câteva elemente în ea. După aceea am invocat metoda reverseOrder() împreună cu metoda sort() a clasei Collections și am trecut obiectul clasei ArrayList, adică o listă care sortează elementele în ordine descrescătoare.

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

Ieșire:

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

Ieșire:

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