logo

Com ordenar la matriu de cadenes a Java

En programació, classificació és important perquè posa elements d'un matriu en un ordre determinat. L'ordre molt utilitzat és ordre alfabètic o ordre natural . L'ordenació s'utilitza per canonicalitzar (el procés de conversió de dades en la forma estàndard) dades i per produir un format llegible per l'home. En aquest apartat, aprendrem com ordenar la matriu de cadenes a Java utilitzant lògica definida per l'usuari i Arrays. ordenar () mètode

Hi ha dues maneres d'ordenar una matriu de cadenes a Java:

  • Utilitzant Usuari definit Lògica
  • Utilitzant el Arrays.sort() Mètode

Ús de la lògica definida per l'usuari

Podem ordenar una matriu de cadenes comparant cada element amb la resta d'elements. En l'exemple següent, hem fet el mateix. Hem utilitzat dos bucles for. El bucle interior (segon) per evita les repeticions en comparació. Si la condició (països[i].compareTo(països[j])>0) és certa que 0, realitza l'intercanvi i ordena la matriu.

10 de 100.00

SortStringArrayExample1.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;>

Utilitzant el mètode Arrays.sort().

A Java, Arrays és la classe definida al paquet java.util que proporciona ordenar () mètode per ordenar una matriu en ordre ascendent. S'utilitza Algorisme Quicksort de doble pivot per a la classificació. La seva complexitat és O(n log(n)) . És un estàtica mètode que analitza un matriu com a paràmetre i no retorna res. Podem invocar-lo directament utilitzant el nom de la classe. Accepta una matriu de tipus int, float, double, long, char, byte.

Sintaxi:

 public static void sort(int[] a) 

On a és una matriu per ser breu.

Nota: Igual que la classe Arrays, la classe Collections també proporciona el mètode sort() per ordenar la matriu. Però hi ha una diferència entre ells. El mètode sort() de la classe Arrays funciona per al tipus primitiu mentre que el mètode sort() de la classe Collections funciona per a col·leccions d'objectes, com ara LinkedList, ArrayList, etc.

Podem realitzar l'ordenació de les següents maneres:

    Ordre ascendento Ordre alfabètic o Ordre natural Ordre descendento Ordre natural invers

Ordena la matriu de cadenes en ordre ascendent o alfabètic

El ordre ascendent ordena els elements de menor a major ordre. També es coneix com ordre natural o ordre alfabètic .

Anem a ordenar una matriu utilitzant el mètode sort() de la classe Arrays.

SortStringArrayExample2.java

què és ymail
 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)); } } 

Sortida:

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

Ordena la matriu de cadenes en ordre descendent o en ordre natural invers

Utilitzant el mètode reverseOrder().

Java Col·leccions classe proporciona el ordre invers() mètode per ordenar la matriu en ordre lexicogràfic invers. És un mètode estàtic, de manera que podem invocar-lo directament mitjançant el nom de la classe. No analitza cap paràmetre. Torna a comparador que imposa el contrari de l'ordre natural (ordre ascendent).

Significa que la matriu ordena els elements en ordre ascendent mitjançant el mètode sort(), després el mètode reverseOrder() inverteix l'ordre natural i obtenim la matriu ordenada en ordre descendent.

Sintaxi:

 public static Comparator reverseOrder() 

Suposem que a[] és una matriu que s'ha d'ordenar en ordre descendent. Utilitzarem el mètode reverseOrder() de la següent manera:

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

Anem a ordenar una matriu de cadenes en ordre descendent.

Selecció ordena java

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

Sortida:

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