logo

Come ordinare la matrice di stringhe in Java

Nella programmazione, ordinamento è importante perché inserisce gli elementi di an vettore in un certo ordine. L'ordine ampiamente utilizzato è l'ordine alfabetico O ordine naturale . L'ordinamento viene utilizzato per canonicalizzare i dati (il processo di conversione dei dati nel formato standard) e per produrre un formato leggibile dall'uomo. In questa sezione impareremo come ordinare l'array di stringhe in Java utilizzando logica definita dall'utente E Array. ordinare() metodo

Esistono due modi per ordinare un array di stringhe in Java:

  • Utilizzando Definito dall'utente Logica
  • Usando il Array.sort() Metodo

Utilizzo della logica definita dall'utente

Possiamo ordinare un array di stringhe confrontando ciascun elemento con gli altri elementi. Nell'esempio seguente, abbiamo fatto lo stesso. Ne abbiamo usati due cicli for. Il ciclo for interno (secondo) evita le ripetizioni nel confronto. Se la condizione (countries[i].compareTo(countries[j])>0) è vera rispetto a 0, esegue lo scambio e ordina l'array.

elenchi Java

SortStringArrayEsempio1.java

 import java.util.Arrays; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; int size = countries.length; //logic for sorting for(int i = 0; i<size-1; i++) { for (int j="i+1;" j0) swapping array elements string temp="countries[i];" countries[i]="countries[j];" countries[j]="temp;" } prints the sorted in ascending order system.out.println(arrays.tostring(countries)); < pre> <p> <strong>Output:</strong> </p> <pre> [ Australia, America, Denmark, France, Germany, India, Italy, Netherlands, South-Africa, Yugoslavia, Zimbabwe] </pre> <h3>Using the Arrays.sort() Method</h3> <p>In Java, <strong>Arrays</strong> is the class defined in the java.util package that provides <strong>sort()</strong> method to sort an array in ascending order. It uses <strong>Dual-Pivot Quicksort algorithm</strong> for sorting. Its complexity is <strong>O(n log(n))</strong> . It is a <strong>static</strong> method that parses an <strong>array</strong> as a parameter and does not return anything. We can invoke it directly by using the class name. It accepts an array of type int, float, double, long, char, byte.</p> <p> <strong>Syntax:</strong> </p> <pre> public static void sort(int[] a) </pre> <p>Where <strong>a</strong> is an array to be short.</p> <h4>Note: Like the Arrays class, the Collections class also provides the sort() method to sort the array. But there is a difference between them. The sort() method of the Arrays class works for primitive type while the sort() method of the Collections class works for objects Collections, such as LinkedList, ArrayList, etc.</h4> <p>We can perform sorting in the following ways:</p> <ul> <tr><td>Ascending Order</td> or <strong>Alphabetical Order</strong> or <strong>Natural Order</strong>  </tr><tr><td>Descending Order</td> or <strong>Reverse Natural Order</strong>  </tr></ul> <h3>Sort String Array in Ascending Order or Alphabetical Order</h3> <p>The <strong>ascending order</strong> arranges the elements in the lowest to highest order. It is also known as <strong>natural order</strong> or <strong>alphabetical order</strong> .</p> <p>Let&apos;s sort an array using the sort() method of the Arrays class.</p> <p> <strong>SortStringArrayExample2.java</strong> </p> <pre> import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {&apos;Wood apple&apos;, &apos;Blackberry&apos;, &apos;Date&apos;, &apos;Naseberry&apos;, &apos;Tamarind&apos;, &apos;Fig&apos;, &apos;Mulberry&apos;, &apos;Apple&apos;, &apos;Plum&apos;, &apos;Orange&apos;, &apos;Custard apple&apos;, &apos;Apricot&apos;}; //sorts string array in alphabetical order or ascending order Arrays.sort(countries); //prints the sorted string array in ascending order System.out.println(Arrays.toString(countries)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple] </pre> <h3>Sort String Array in Descending Order or Reverse Natural Order</h3> <h3>Using the reverseOrder() Method</h3> <p>Java <strong>Collections</strong> class provides the <strong>reverseOrder()</strong> method to sort the array in reverse-lexicographic order. It is a static method, so we can invoke it directly by using the class name. It does not parse any parameter. It returns a <strong>comparator</strong> that imposes the reverse of the natural ordering (ascending order).</p> <p>It means that the array sorts elements in the ascending order by using the sort() method, after that the reverseOrder() method reverses the natural ordering, and we get the sorted array in descending order.</p> <p> <strong>Syntax:</strong> </p> <pre> public static Comparator reverseOrder() </pre> <p>Suppose, a[] is an array to be sort in the descending order. We will use the reverseOrder() method in the following way:</p> <pre> Arrays.sort(a, Collections.reverseOrder()); </pre> <p>Let&apos;s sort a string array in the descending order.</p> <p> <strong>SortStringArrayExample3.java</strong> </p> <pre> import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; //sorts array in descending order Arrays.sort(countries, Collections.reverseOrder()); //prints the sorted string array in descending order System.out.println(Arrays.toString(countries)); } } </pre> <p> <strong>Output:</strong> </p> <pre> [Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia] </pre> <hr></size-1;>

Utilizzando il metodo Arrays.sort()

A Giava, Array è la classe definita nel pacchetto java.util che fornisce ordinare() metodo per ordinare un array in ordine crescente. Utilizza Algoritmo Quicksort a doppio pivot per l'ordinamento. La sua complessità è O(n log(n)) . È un statico metodo che analizza un vettore come parametro e non restituisce nulla. Possiamo invocarlo direttamente utilizzando il nome della classe. Accetta un array di tipo int, float, double, long, char, byte.

Sintassi:

 public static void sort(int[] a) 

Dove UN è un array che deve essere breve.

Nota: come la classe Arrays, anche la classe Collections fornisce il metodo sort() per ordinare l'array. Ma c'è una differenza tra loro. Il metodo sort() della classe Arrays funziona per il tipo primitivo mentre il metodo sort() della classe Collections funziona per le raccolte di oggetti, come LinkedList, ArrayList, ecc.

Possiamo eseguire l'ordinamento nei seguenti modi:

    Ordine ascendenteO Ordine alfabetico O Ordine naturale Ordine decrescenteO Ordine naturale inverso

Ordina la matrice di stringhe in ordine crescente o alfabetico

IL ordine ascendente dispone gli elementi dal più basso al più alto. È anche noto come ordine naturale O ordine alfabetico .

Ordiniamo un array utilizzando il metodo sort() della classe Arrays.

SortStringArrayEsempio2.java

città dell'Australia
 import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {&apos;Wood apple&apos;, &apos;Blackberry&apos;, &apos;Date&apos;, &apos;Naseberry&apos;, &apos;Tamarind&apos;, &apos;Fig&apos;, &apos;Mulberry&apos;, &apos;Apple&apos;, &apos;Plum&apos;, &apos;Orange&apos;, &apos;Custard apple&apos;, &apos;Apricot&apos;}; //sorts string array in alphabetical order or ascending order Arrays.sort(countries); //prints the sorted string array in ascending order System.out.println(Arrays.toString(countries)); } } 

Produzione:

 [Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple] 

Ordina la matrice di stringhe in ordine discendente o in ordine naturale inverso

Utilizzando il metodo reverseOrder()

Giava Collezioni la classe fornisce il file ordine inverso() metodo per ordinare l'array in ordine lessicografico inverso. È un metodo statico, quindi possiamo invocarlo direttamente utilizzando il nome della classe. Non analizza alcun parametro. Restituisce a comparatore che impone l'inverso dell'ordinamento naturale (ordine ascendente).

Significa che l'array ordina gli elementi in ordine crescente utilizzando il metodo sort(), dopodiché il metodo reverseOrder() inverte l'ordinamento naturale e otteniamo l'array ordinato in ordine decrescente.

Sintassi:

 public static Comparator reverseOrder() 

Supponiamo che a[] sia un array da ordinare in ordine decrescente. Utilizzeremo il metodo reverseOrder() nel modo seguente:

 Arrays.sort(a, Collections.reverseOrder()); 

Ordiniamo un array di stringhe in ordine decrescente.

stringa un int

SortStringArrayEsempio3.java

 import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {&apos;Zimbabwe&apos;, &apos;South-Africa&apos;, &apos;India&apos;, &apos;America&apos;, &apos;Yugoslavia&apos;, &apos; Australia&apos;, &apos;Denmark&apos;, &apos;France&apos;, &apos;Netherlands&apos;, &apos;Italy&apos;, &apos;Germany&apos;}; //sorts array in descending order Arrays.sort(countries, Collections.reverseOrder()); //prints the sorted string array in descending order System.out.println(Arrays.toString(countries)); } } 

Produzione:

 [Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia]