logo

Hvordan sortere String Array i Java

I programmering, sortering er viktig fordi det setter elementer av en array i en bestemt rekkefølge. Den mye brukte rekkefølgen er alfabetisk rekkefølge eller naturlig orden . Sorteringen brukes til kanonisering (prosessen med å konvertere data i standardform) data og for å produsere et menneskelesbart format. I denne delen vil vi lære hvordan sortere String array i Java ved hjelp av brukerdefinert logikk og Matriser. sortere() metode

Det er to måter å sortere en strengmatrise på i Java:

  • Ved hjelp av Brukerdefinert Logikk
  • Bruker Arrays.sort() Methodm

Bruker brukerdefinert logikk

Vi kan sortere en string-array ved å sammenligne hvert element med resten-elementene. I følgende eksempel har vi gjort det samme. Vi har brukt to til løkker. Den indre (andre) for løkken unngår repetisjonene i sammenligning. Hvis betingelsen (countries[i].compareTo(countries[j])>0) er sann enn 0, utfører den byttet og sorterer matrisen.

java skanner klasse

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

Ved å bruke Arrays.sort()-metoden

I Java, Matriser er klassen definert i java.util-pakken som gir sortere() metode for å sortere en matrise i stigende rekkefølge. Det bruker Dual-Pivot Quicksort-algoritme for sortering. Dens kompleksitet er O(n log(n)) . Det er en statisk metode som analyserer en array som en parameter og returnerer ikke noe. Vi kan påkalle det direkte ved å bruke klassenavnet. Den aksepterer en rekke av typen int, float, double, long, char, byte.

Syntaks:

 public static void sort(int[] a) 

Hvor en er en rekke for å være kort.

Merk: I likhet med Arrays-klassen, tilbyr klassen Collections også sort()-metoden for å sortere matrisen. Men det er forskjell på dem. Sort()-metoden til Arrays-klassen fungerer for primitiv type, mens sort()-metoden til Collections-klassen fungerer for objektsamlinger, for eksempel LinkedList, ArrayList, etc.

Vi kan utføre sortering på følgende måter:

    Stigende rekkefølgeeller Alfabetisk rekkefølge eller Naturlig orden Synkende rekkefølgeeller Omvendt naturlig rekkefølge

Sorter strengarray i stigende rekkefølge eller alfabetisk rekkefølge

De stigende rekkefølge arrangerer elementene i laveste til høyeste rekkefølge. Det er også kjent som naturlig orden eller alfabetisk rekkefølge .

La oss sortere en matrise ved å bruke sort()-metoden til Arrays-klassen.

SortStringArrayExample2.java

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

Produksjon:

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

Sorter strengarray i synkende rekkefølge eller omvendt naturlig rekkefølge

Ved å bruke reverseOrder()-metoden

Java Samlinger klasse gir omvendt rekkefølge() metode for å sortere matrisen i omvendt leksikografisk rekkefølge. Det er en statisk metode, så vi kan påkalle den direkte ved å bruke klassenavnet. Den analyserer ikke noen parameter. Den returnerer en komparator som pålegger det motsatte av den naturlige rekkefølgen (stigende rekkefølge).

Det betyr at matrisen sorterer elementer i stigende rekkefølge ved å bruke sort()-metoden, etter at reverseOrder()-metoden reverserer den naturlige rekkefølgen, og vi får den sorterte matrisen i synkende rekkefølge.

Syntaks:

 public static Comparator reverseOrder() 

Anta at a[] er en matrise som skal sorteres i synkende rekkefølge. Vi vil bruke reverseOrder()-metoden på følgende måte:

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

La oss sortere en strengmatrise i synkende rekkefølge.

streng til char

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

Produksjon:

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