logo

Kuinka lajitella merkkijonotaulukko Javassa

Ohjelmoinnissa, lajittelu on tärkeä, koska se asettaa elementtejä an joukko tietyssä järjestyksessä. Laajalti käytetty tilaus on aakkosjärjestyksessä tai luonnollinen järjestys . Lajittelua käytetään tietojen kanonisointiin (tietojen muuntaminen vakiomuotoon) ja ihmisen luettavissa olevan muodon tuottamiseen. Tässä osiossa opimme kuinka lajitella merkkijonotaulukko Javassa käyttämällä käyttäjän määrittämä logiikka ja Taulukot. järjestellä() menetelmä

Javalla on kaksi tapaa lajitella merkkijonotaulukko:

  • Käyttämällä Käyttäjän määrittelemä Logiikka
  • Käyttämällä Arrays.sort() Methodm

Käyttäen käyttäjän määrittämää logiikkaa

Voimme lajitella merkkijonotaulukon vertaamalla jokaista elementtiä muihin elementteihin. Seuraavassa esimerkissä olemme tehneet samoin. Olemme käyttäneet kahta silmukkaa varten. Sisäinen (toinen) for-silmukka välttää toistot vertailussa. Jos ehto (countries[i].compareTo(countries[j])>0) on tosi kuin 0, se suorittaa vaihdon ja lajittelee taulukon.

konekirjoitus foreach silmukka

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

Käyttämällä Arrays.sort()-menetelmää

Javalla, Taulukot on luokka, joka on määritetty tarjoavassa java.util-paketissa järjestellä() tapa lajitella taulukko nousevaan järjestykseen. Se käyttää Dual-Pivot Quicksort -algoritmi lajittelua varten. Sen monimutkaisuus on O(n log(n)) . Se on a staattinen menetelmä, joka jäsentää an joukko parametrina eikä palauta mitään. Voimme kutsua sen suoraan käyttämällä luokan nimeä. Se hyväksyy joukon tyyppiä int, float, double, long, char, tavu.

Syntaksi:

 public static void sort(int[] a) 

Missä a on joukko olla lyhyt.

Huomautus: Kuten Arrays-luokka, Collections-luokka tarjoaa myös sort()-menetelmän taulukon lajitteluun. Mutta niiden välillä on ero. Arrays-luokan sort()-menetelmä toimii primitiivityypillä, kun taas Collections-luokan sort()-menetelmä toimii objektikokoelmissa, kuten LinkedList, ArrayList jne.

Voimme suorittaa lajittelun seuraavilla tavoilla:

    Nousevassa järjestyksessätai Aakkosjärjestys tai Luonnollinen järjestys Laskeva järjestystai Käänteinen luonnollinen järjestys

Lajittele merkkijonotaulukko nousevassa tai aakkosjärjestyksessä

The nousevassa järjestyksessä järjestää elementit alimmasta korkeimpaan järjestykseen. Se tunnetaan myös nimellä luonnollinen järjestys tai Aakkosjärjestys .

Lajitellaan taulukko Arrays-luokan sort()-menetelmällä.

SortStringArrayExample2.java

oho käsitteitä javassa
 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)); } } 

Lähtö:

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

Lajittele merkkijonotaulukko laskevassa tai käänteisessä luonnollisessa järjestyksessä

ReverseOrder()-menetelmän käyttäminen

Java Kokoelmat luokka tarjoaa käänteinen järjestys() menetelmä lajitella taulukko käänteiseen leksikografiseen järjestykseen. Se on staattinen menetelmä, joten voimme kutsua sen suoraan käyttämällä luokan nimeä. Se ei jäsennä mitään parametria. Se palauttaa a vertailija joka määrää luonnollisen järjestyksen käänteisen (nouseva järjestyksen).

Se tarkoittaa, että taulukko lajittelee elementit nousevaan järjestykseen käyttämällä sort()-metodia, jonka jälkeen reverseOrder()-metodi kääntää luonnollisen järjestyksen ja saadaan lajiteltu taulukko laskevassa järjestyksessä.

Syntaksi:

 public static Comparator reverseOrder() 

Oletetaan, että a[] on taulukko, joka lajitellaan laskevassa järjestyksessä. Käytämme reverseOrder()-menetelmää seuraavalla tavalla:

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

Lajitellaan merkkijonotaulukko laskevaan järjestykseen.

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

Lähtö:

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