logo

Kā kārtot virkņu masīvu Java

Programmēšanā, šķirošana ir svarīga, jo tajā tiek ievietoti an elementi masīvs noteiktā secībā. Plaši izmantotais pasūtījums ir alfabētiskā secībā vai dabiskā kārtība . Šķirošana tiek izmantota datu kanonizēšanai (datu konvertēšanas process standarta formā) un cilvēkiem lasāma formāta izveidošanai. Šajā sadaļā mēs uzzināsim kā kārtot virkņu masīvu Java izmantojot lietotāja definēta loģika un Masīvi. kārtot () metodi

Ir divi veidi, kā kārtot virkņu masīvu Java:

  • Izmantojot Lietotājs definēts Loģika
  • Izmantojot Arrays.sort() Metode

Lietotāja definētas loģikas izmantošana

Mēs varam kārtot virkņu masīvu, salīdzinot katru elementu ar pārējiem elementiem. Nākamajā piemērā mēs esam darījuši to pašu. Mēs esam izmantojuši divas cilpas. Iekšējā (otrā) for cilpa izvairās no atkārtojumiem salīdzinājumā. Ja nosacījums (countries[i].compareTo(countries[j])>0) ir patiess par 0, tas veic apmaiņu un sakārto masīvu.

polimorfisms java

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

Izmantojot Arrays.sort() metodi

Java valodā, Masīvi ir klase, kas definēta pakotnē java.util, kas nodrošina kārtot () metode masīva kārtošanai augošā secībā. Tā izmanto Dual-Pivot Quicksort algoritms šķirošanai. Tās sarežģītība ir O(n log(n)) . Tas ir statisks metode, kas parsē an masīvs kā parametrs un neko neatgriež. Mēs varam to izsaukt tieši, izmantojot klases nosaukumu. Tas pieņem int, float, double, long, char, baitu tipa masīvu.

Sintakse:

 public static void sort(int[] a) 

Kur a ir masīvs, kas ir īss.

Piezīme. Tāpat kā klase Arrays, arī klase Collections nodrošina masīva kārtošanas metodi sort(). Bet starp tām ir atšķirība. Arrays klases metode sort() darbojas primitīvajam tipam, savukārt kolekcijas klases metode sort() darbojas objektiem, kolekcijām, piemēram, LinkedList, ArrayList utt.

Mēs varam veikt šķirošanu šādos veidos:

java parauga kods
    Augoša secībavai Alfabētiska secība vai Dabiskā kārtība Dilstoša secībavai Apgrieztā dabiskā kārtība

Kārtojiet virkņu masīvu augošā vai alfabētiskā secībā

The augoša secība sakārto elementus no zemākās uz augstāko secību. Tas ir pazīstams arī kā dabiskā kārtība vai alfabētiska secība .

Sakārtosim masīvu, izmantojot klases Arrays metodi sort().

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

Izvade:

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

Kārtojiet virkņu masīvu dilstošā secībā vai apgrieztā dabiskā secībā

Izmantojot reverseOrder() metodi

Java Kolekcijas klase nodrošina apgrieztā secībā() metode masīva kārtošanai apgrieztā leksikogrāfiskā secībā. Tā ir statiska metode, tāpēc mēs varam to izsaukt tieši, izmantojot klases nosaukumu. Tas neparsē nevienu parametru. Tas atgriež a salīdzinātājs kas uzliek apgriezto dabisko secību (augošā secībā).

Tas nozīmē, ka masīvs kārto elementus augošā secībā, izmantojot metodi sort(), pēc tam metode reverseOrder() apvērš dabisko secību, un mēs iegūstam sakārtoto masīvu dilstošā secībā.

Sintakse:

 public static Comparator reverseOrder() 

Pieņemsim, ka a[] ir masīvs, kas jākārto dilstošā secībā. Mēs izmantosim reverseOrder() metodi šādā veidā:

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

Sakārtosim virkņu masīvu dilstošā secībā.

virkne līdz veseliem skaitļiem

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

Izvade:

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