logo

Kaip rūšiuoti eilučių masyvą Java

Programavime, rūšiavimas yra svarbus, nes įdeda an elementų masyvas tam tikra tvarka. Plačiai naudojama tvarka yra abėcėlės tvarka arba natūrali tvarka . Rūšiavimas naudojamas duomenims kanonizuoti (duomenų konvertavimo į standartinę formą procesas) ir sukurti žmonėms suprantamą formatą. Šiame skyriuje mes išmoksime kaip rūšiuoti eilučių masyvą Java naudojant vartotojo apibrėžta logika ir Masyvai. Rūšiuoti () metodas

Yra du būdai, kaip rūšiuoti eilučių masyvą Java:

  • Naudojant Nustatyta vartotojo Logika
  • Naudojant Arrays.sort() Metodas

Naudojant vartotojo nustatytą logiką

Mes galime rūšiuoti eilučių masyvą lygindami kiekvieną elementą su likusiais elementais. Toliau pateiktame pavyzdyje mes padarėme tą patį. Kilpoms naudojome dvi. Vidinė (antra) for kilpa vengia pasikartojimų, palyginti. Jei sąlyga (countries[i].compareTo(countries[j])>0) yra teisinga nei 0, ji atlieka keitimą ir surūšiuoja masyvą.

aktorius Zeenat Aman

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

Naudojant Arrays.sort() metodą

Java, Masyvai yra klasė, apibrėžta java.util pakete, kuris suteikia Rūšiuoti () būdas rūšiuoti masyvą didėjančia tvarka. Tai naudoja Dual-Pivot Quicksort algoritmas rūšiavimui. Jo sudėtingumas yra O(n log(n)) . Tai yra statinis metodas, kuris analizuoja an masyvas kaip parametras ir nieko negrąžina. Jį galime iškviesti tiesiogiai naudodami klasės pavadinimą. Jis priima int, float, double, long, char, baitų tipų masyvą.

Sintaksė:

 public static void sort(int[] a) 

Kur a yra trumpas masyvas.

Pastaba: Kaip ir klasėje Arrays, kolekcijų klasėje taip pat pateikiamas būdas rūšiuoti () masyvui rūšiuoti. Tačiau tarp jų yra skirtumas. Masyvų klasės metodas sort() veikia primityviajam tipui, o kolekcijų klasės metodas sort() veikia objektų kolekcijoms, pvz., LinkedList, ArrayList ir kt.

Rūšiavimą galime atlikti šiais būdais:

    Didėjančia tvarkaarba Abėcėlės tvarka arba Natūrali tvarka Mažėjančia tvarkaarba Atvirkštinė natūrali tvarka

Rūšiuoti eilučių masyvą didėjančia arba abėcėlės tvarka

The Didėjančia tvarka išdėsto elementus nuo mažiausios iki aukščiausios. Jis taip pat žinomas kaip natūrali tvarka arba abėcėlės tvarka .

Rūšiuokime masyvą naudodami klasės Arrays metodą sort().

SortStringArrayExample2.java

tęsinio duomenų tipai
 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)); } } 

Išvestis:

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

Rūšiuoti eilučių masyvą mažėjančia tvarka arba atvirkštine natūralia tvarka

Naudojant reverseOrder() metodą

Java Kolekcijos klasė suteikia Atvirkštinė tvarka() būdas rūšiuoti masyvą atvirkštine leksikografine tvarka. Tai statinis metodas, todėl jį galime iškviesti tiesiogiai naudodami klasės pavadinimą. Jis neanalizuoja jokių parametrų. Tai grąžina a lyginamoji priemonė kuri nustato atvirkštinę natūralios eilės tvarką (didėjančia tvarka).

Tai reiškia, kad masyvas rūšiuoja elementus didėjančia tvarka naudojant sort() metodą, po to metodas reverseOrder() apverčia natūralią tvarką ir gauname surūšiuotą masyvą mažėjančia tvarka.

Sintaksė:

 public static Comparator reverseOrder() 

Tarkime, a[] yra masyvas, kurį reikia rūšiuoti mažėjančia tvarka. ReverseOrder() metodą naudosime tokiu būdu:

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

Surūšiuokime eilučių masyvą mažėjančia tvarka.

eilutę į sveikąjį skaičių 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)); } } 

Išvestis:

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