logo

Kako razvrstiti niz nizov v Javi

V programiranju, razvrščanje je pomemben, ker vsebuje elemente an niz v določenem vrstnem redu. Široko uporabljen vrstni red je abecedni red oz naravni red . Razvrščanje se uporablja za kanoniziranje (postopek pretvorbe podatkov v standardni obliki) podatkov in za izdelavo človeku berljive oblike. V tem razdelku se bomo naučili kako razvrstiti matriko nizov v Javi uporabo uporabniško definirana logika in Nizi. razvrsti() metoda

Obstajata dva načina za razvrščanje matrike nizov v Javi:

  • Uporaba Uporabnik definiran Logika
  • Uporabljati Arrays.sort() Metoda

Uporaba uporabniško določene logike

Niz nizov lahko razvrstimo tako, da vsak element primerjamo z ostalimi elementi. V naslednjem primeru smo storili enako. Uporabili smo dve for zanki. Notranja (druga) zanka for se izogne ​​ponovitvam v primerjavi. Če je pogoj (countries[i].compareTo(countries[j])>0) resničen od 0, izvede zamenjavo in razvrsti matriko.

večerja proti večerji

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

Uporaba metode Arrays.sort().

V Javi, Nizi je razred, definiran v paketu java.util, ki zagotavlja razvrsti() metoda za razvrščanje matrike v naraščajočem vrstnem redu. Uporablja se Dual-Pivot Quicksort algoritem za sortiranje. Njegova kompleksnost je O(n log(n)) . Je statična metoda, ki razčleni an niz kot parameter in ne vrne ničesar. Lahko ga prikličemo neposredno z uporabo imena razreda. Sprejema matriko tipa int, float, double, long, char, byte.

Sintaksa:

 public static void sort(int[] a) 

Kje a je niz, ki mora biti kratek.

Opomba: tako kot razred Matrike tudi razred Zbirke ponuja metodo sort() za razvrščanje matrike. Je pa razlika med njima. Metoda sort() razreda Arrays deluje za primitivni tip, medtem ko metoda sort() razreda Collections deluje za objekte Collections, kot so LinkedList, ArrayList itd.

Razvrščanje lahko izvedemo na naslednje načine:

    Naraščajoči vrstni redoz Po abecednem vrstnem redu oz Naravni red Padajoči vrstni redoz Obratni naravni red

Razvrsti matriko nizov v naraščajočem ali abecednem vrstnem redu

The naraščajočem vrstnem redu razporedi elemente od najnižjega do najvišjega reda. Znan je tudi kot naravni red oz po abecednem vrstnem redu .

Razvrstimo matriko z metodo sort() razreda Arrays.

SortStringArrayExample2.java

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

Izhod:

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

Razvrsti matriko nizov v padajočem ali obratnem naravnem vrstnem redu

Uporaba metode reverseOrder().

Java Zbirke razred zagotavlja obratni vrstni red() metoda za razvrščanje matrike v obratnem leksikografskem vrstnem redu. Je statična metoda, zato jo lahko prikličemo neposredno z uporabo imena razreda. Ne razčlenjuje nobenega parametra. Vrne a primerjalnik ki vsiljuje obraten naravni vrstni red (naraščajoči vrstni red).

Pomeni, da matrika z metodo sort() razvrsti elemente v naraščajočem vrstnem redu, nato metoda reverseOrder() obrne naravni vrstni red in dobimo razvrščeno matriko v padajočem vrstnem redu.

Sintaksa:

 public static Comparator reverseOrder() 

Recimo, da je a[] matrika, ki jo je treba razvrstiti v padajočem vrstnem redu. Metodo reverseOrder() bomo uporabili na naslednji način:

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

Razvrstimo matriko nizov v padajočem vrstnem redu.

java niz podniz

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

Izhod:

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