logo

Hur man sorterar String Array i Java

I programmering, sortering är viktigt eftersom det sätter inslag av en array i en viss ordning. Den flitigt använda ordningen är alfabetisk ordning eller naturlig ordning . Sorteringen används för att kanonisera (processen att konvertera data i standardformat) data och för att producera ett läsbart format. I det här avsnittet kommer vi att lära oss hur man sorterar String array i Java använder sig av användardefinierad logik och Matriser. sortera() metod

Det finns två sätt att sortera en strängarray i Java:

  • Använder sig av Användardefinierad Logik
  • Använda Arrays.sort() Metodm

Använder användardefinierad logik

Vi kan sortera en strängarray genom att jämföra varje element med de övriga elementen. I följande exempel har vi gjort detsamma. Vi har använt två för slingor. Den inre (andra) för slingan undviker upprepningarna i jämförelse. Om villkoret (countries[i].compareTo(countries[j])>0) är sant än 0, utför det bytet och sorterar matrisen.

kat timpf höjd

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

Använda Arrays.sort()-metoden

I Java, Matriser är den klass som definieras i paketet java.util som tillhandahåller sortera() metod för att sortera en matris i stigande ordning. Det använder Dual-Pivot Quicksort-algoritm för sortering. Dess komplexitet är O(n log(n)) . Det är en statisk metod som analyserar en array som en parameter och returnerar ingenting. Vi kan anropa det direkt genom att använda klassnamnet. Den accepterar en array av typen int, float, double, long, char, byte.

Syntax:

 public static void sort(int[] a) 

Var a är en array för att vara kort.

Obs: Liksom klassen Arrays tillhandahåller klassen Collections också metoden sort() för att sortera arrayen. Men det är skillnad på dem. Sort()-metoden för klassen Arrays fungerar för primitiv typ medan sort()-metoden för klassen Collections fungerar för objektsamlingar, såsom LinkedList, ArrayList, etc.

Vi kan utföra sortering på följande sätt:

    Stigande ordningeller Alfabetisk ordning eller Naturlig ordning Fallande ordningeller Omvänd naturlig ordning

Sortera strängarray i stigande ordning eller alfabetisk ordning

De stigande ordning arrangerar elementen i lägsta till högsta ordningen. Det är också känt som naturlig ordning eller alfabetisk ordning .

Låt oss sortera en array med metoden sort() i klassen Arrays.

SortStringArrayExample2.java

groovy datorspråk
 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)); } } 

Produktion:

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

Sortera strängarray i fallande ordning eller omvänd naturlig ordning

Använder metoden reverseOrder()

Java Samlingar klass ger omvänd ordning() metod för att sortera arrayen i omvänd lexikografisk ordning. Det är en statisk metod, så vi kan anropa den direkt genom att använda klassnamnet. Den analyserar inte någon parameter. Den returnerar en komparator som ålägger det omvända av den naturliga ordningen (stigande ordningen).

Det betyder att arrayen sorterar element i stigande ordning genom att använda sort()-metoden, efter att reverseOrder()-metoden omvänder den naturliga ordningen, och vi får den sorterade arrayen i fallande ordning.

Syntax:

 public static Comparator reverseOrder() 

Antag att a[] är en matris som ska sorteras i fallande ordning. Vi kommer att använda metoden reverseOrder() på följande sätt:

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

Låt oss sortera en strängarray i fallande ordning.

java annat om

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

Produktion:

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