logo

Come ordinare ArrayList in Java

A Giava, Collezione è un framework che fornisce interfacce ( Imposta, Elenco, Coda, ecc.) e classi ( ArrayList, LinkedList, ecc.) per memorizzare il gruppo di oggetti. Queste classi memorizzano i dati in modo non ordinato. A volte abbiamo bisogno di organizzare i dati in modo ordinato, noto come ordinamento . L'ordinamento può essere effettuato in due modi: in ascendente O discendente ordine.

In questa sezione impareremo come ordinare ArrayList in ordine crescente E ordine decrescente.

Lista di array

In Giava , Lista di array è una classe di framework di raccolte definita injava.utilpacchetto. Eredita la classe AbstractList. Memorizza dinamicamente gli elementi. Il vantaggio di ArrayList è che non ha limiti di dimensione. È più flessibile dell'array tradizionale. Potrebbe contenere elementi duplicati. Possiamo anche utilizzare tutti i metodi dell'interfaccia List perché implementa il file Elenco interfaccia.

Possiamo ordinare un ArrayList in due modi, ascendente e discendente. La classe Collections fornisce due metodi per ordinare un ArrayList in Java.

    ordinare() ordine inverso()

Metodo Collections.sort()

Un ArrayList può essere ordinato utilizzando il metodo ordinare() metodo del Classe di raccolte in Java . Accetta un oggetto di ArrayList come parametro da ordinare e restituisce un ArrayList ordinato in ordine crescente secondo l'ordinamento naturale dei suoi elementi.

la data viene convertita in stringa

Sintassi

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

Ricordare: Tutti gli elementi nell'ArrayList devono essere reciprocamente confrontabili, altrimenti genera un'eccezione ClassCastException. In questo caso, reciprocamente comparabili significa che l'elenco deve contenere lo stesso tipo di elementi. Consideriamo ad esempio lo snippet di codice:

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

Nell'esempio sopra, vediamo che una lista ha quattro elementi di cui tre elementi sono di tipo String e uno è di tipo Integer. I tre elementi presenti in String sono tra loro confrontabili ma l'elemento di tipo Integer non è confrontabile con gli altri tre. Pertanto, l'elenco deve avere lo stesso tipo di elementi.

Metodo Collections.reverseOrder()

Se vogliamo ordinare ArrayList in discendente ordine, Collezioni Java la classe fornisce ordine inverso() metodo. Ci consente di ordinare l'ArrayList lessicografico inverso ordine.

Sintassi

stringa di concatenazione in Java
 public static Comparator reverseOrder() 

Restituisce un comparatore che impone l'inverso dell'ordinamento naturale su una raccolta di oggetti che implementano l'interfaccia Comparable.

Ricorda che non invochiamo direttamente il metodo reverseOrder(). Lo usiamo insieme a Collezione.sort() metodo, come segue.

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

Pertanto, l'ordinamento di ArrayList in ordine decrescente viene eseguito in due passaggi, prima ArrayList ordina i dati in ordine crescente, dopodiché i dati ordinati vengono invertiti da ordine inverso() metodo.

Creiamo programmi che ordinano ArrayList in ordine crescente.

Ordina ArrayList in ordine crescente

Nell'esempio seguente, abbiamo creato un ArrayList di tipo String e vi abbiamo aggiunto alcuni elementi. Successivamente abbiamo invocato il metodo sort() della classe Collections e passato l'oggetto della classe ArrayList, ovvero la lista che ordina gli elementi in ordine crescente.

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

Produzione:

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

Vediamo un altro esempio che ordina un ArrayList di tipo 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); } } } 

Produzione:

come rinominare una directory linux
 ArrayList Before Sorting: 55 34 98 67 39 76 81 ArrayList After Sorting: 34 39 55 67 76 81 98 

Ordina ArrayList in ordine decrescente

Nell'esempio seguente, abbiamo creato un ArrayList di tipo String e vi abbiamo aggiunto alcuni elementi. Successivamente abbiamo invocato il metodo reverseOrder() insieme al metodo sort() della classe Collections e passato l'oggetto della classe ArrayList, ovvero la lista che ordina gli elementi in ordine decrescente.

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

Produzione:

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

Produzione:

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