logo

Cum să sortați matrice de șiruri în Java

În programare, triere este important deoarece pune elemente de an matrice într-o anumită ordine. Ordinul folosit pe scară largă este ordine alfabetică sau ordinea naturală . Sortarea este utilizată pentru canonizarea (procesul de conversie a datelor în forma standard) a datelor și pentru producerea unui format care poate fi citit de om. În această secțiune, vom învăța cum se sortează matricea String în Java folosind logica definita de utilizator și Matrice. fel() metodă

Există două moduri de a sorta o matrice de șiruri în Java:

  • Folosind Definit de utilizator Logică
  • Folosind Arrays.sort() Metoda

Utilizarea logicii definite de utilizator

Putem sorta o matrice de șiruri comparând fiecare element cu restul elementelor. În exemplul următor, am procedat la fel. Am folosit două bucle for. Bucla interioară (a doua) pentru evită repetările în comparație. Dacă condiția (țări[i].compareTo(țări[j])>0) este adevărată decât 0, efectuează schimbarea și sortează matricea.

clasă abstractă vs interfață

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

Folosind metoda Arrays.sort().

În Java, Matrice este clasa definită în pachetul java.util care furnizează fel() metoda de sortare a unei matrice în ordine crescătoare. Folosește Algoritm dual-pivot Quicksort pentru sortare. Complexitatea sa este O(n log(n)) . Este un static metoda care parseaza an matrice ca parametru și nu returnează nimic. Îl putem invoca direct folosind numele clasei. Acceptă o matrice de tip int, float, double, long, char, byte.

Sintaxă:

 public static void sort(int[] a) 

Unde A este o matrice care să fie scurtă.

Notă: Ca și clasa Arrays, clasa Collections oferă și metoda sort() pentru a sorta matricea. Dar există o diferență între ele. Metoda sort() a clasei Arrays funcționează pentru tipul primitiv, în timp ce metoda sort() a clasei Collections funcționează pentru obiecte Colecții, cum ar fi LinkedList, ArrayList etc.

Putem efectua sortarea în următoarele moduri:

primavara mvc
    Ordine crescătoaresau Ordine alfabetică sau Ordinea naturală Ordine descrescatoaresau Ordinea naturală inversă

Sortați matricea șirurilor în ordine crescătoare sau alfabetică

The ordine crescătoare aranjează elementele în ordinea cea mai mică la cea mai mare. Este cunoscut și ca ordinea naturală sau ordine alfabetică .

Să sortăm o matrice folosind metoda sort() a clasei Arrays.

SortStringArrayExample2.java

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

Ieșire:

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

Sortați matricea șirurilor în ordine descendentă sau în ordine inversă naturală

Folosind metoda reverseOrder().

Java Colecții clasa oferă ordine inversă() metoda de sortare a matricei în ordine lexicografică inversă. Este o metodă statică, așa că o putem invoca direct folosind numele clasei. Nu analizează niciun parametru. Se întoarce a comparator care impune inversul ordinii naturale (ordine ascendentă).

Înseamnă că matricea sortează elementele în ordine crescătoare folosind metoda sort(), după care metoda reverseOrder() inversează ordinea naturală și obținem matricea sortată în ordine descrescătoare.

Sintaxă:

 public static Comparator reverseOrder() 

Să presupunem că a[] este o matrice care trebuie sortată în ordine descrescătoare. Vom folosi metoda reverseOrder() în felul următor:

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

Să sortăm o matrice de șiruri în ordine descrescătoare.

java altfel dacă

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

Ieșire:

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