I programmering, sortering er vigtigt, fordi det sætter elementer af en array i en bestemt rækkefølge. Den meget brugte ordre er alfabetisk rækkefølge eller naturlig orden . Sorteringen bruges til kanonisering (processen med at konvertere data i standardformen) data og til at producere et menneskeligt læsbart format. I dette afsnit vil vi lære hvordan man sorterer String array i Java ved brug af brugerdefineret logik og Arrays. sortere() metode
Der er to måder at sortere et string-array på i Java:
- Ved brug af Brugerdefineret Logik
- Bruger Arrays.sort() Methodm
Brug af brugerdefineret logik
Vi kan sortere et string-array ved at sammenligne hvert element med de resterende elementer. I det følgende eksempel har vi gjort det samme. Vi har brugt to til sløjfer. Den indre (anden) for loop undgår gentagelserne i sammenligning. Hvis betingelsen (lande[i].sammenlignTil(lande[j])>0) er sand end 0, udfører den ombytningen og sorterer arrayet.
java scanner klasse
SortStringArrayExample1.java
import java.util.Arrays; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {'Zimbabwe', 'South-Africa', 'India', 'America', 'Yugoslavia', ' Australia', 'Denmark', 'France', 'Netherlands', 'Italy', 'Germany'}; 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'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 = {'Wood apple', 'Blackberry', 'Date', 'Naseberry', 'Tamarind', 'Fig', 'Mulberry', 'Apple', 'Plum', 'Orange', 'Custard apple', 'Apricot'}; //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'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 = {'Zimbabwe', 'South-Africa', 'India', 'America', 'Yugoslavia', ' Australia', 'Denmark', 'France', 'Netherlands', 'Italy', 'Germany'}; //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;>
Brug af Arrays.sort()-metoden
I Java, Arrays er den klasse, der er defineret i pakken java.util, der giver sortere() metode til at sortere et array i stigende rækkefølge. Det bruger Dual-Pivot Quicksort-algoritme til sortering. Dens kompleksitet er O(n log(n)) . Det er en statisk metode, der analyserer en array som en parameter og returnerer ikke noget. Vi kan påberåbe det direkte ved at bruge klassenavnet. Den accepterer en række af typen int, float, double, long, char, byte.
Syntaks:
public static void sort(int[] a)
Hvor -en er en række at være kort.
Bemærk: Ligesom klassen Arrays giver klassen Collections også sort()-metoden til at sortere arrayet. Men der er forskel på dem. Sort()-metoden for Arrays-klassen fungerer for primitiv type, mens sort()-metoden for Collections-klassen fungerer for objektsamlinger, såsom LinkedList, ArrayList osv.
Vi kan udføre sortering på følgende måder:
Sorter strengmatrix i stigende rækkefølge eller alfabetisk rækkefølge
Det stigende rækkefølge arrangerer elementerne i den laveste til højeste orden. Det er også kendt som naturlig orden eller alfabetisk orden .
Lad os sortere et array ved at bruge sort()-metoden i klassen Arrays.
SortStringArrayExample2.java
fil åben i java
import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {'Wood apple', 'Blackberry', 'Date', 'Naseberry', 'Tamarind', 'Fig', 'Mulberry', 'Apple', 'Plum', 'Orange', 'Custard apple', 'Apricot'}; //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]
Sorter strengarray i faldende rækkefølge eller omvendt naturlig rækkefølge
Brug af metoden reverseOrder()
Java Samlinger klasse giver omvendt rækkefølge() metode til at sortere arrayet i omvendt leksikografisk rækkefølge. Det er en statisk metode, så vi kan påberåbe den direkte ved at bruge klassenavnet. Den analyserer ikke nogen parameter. Det returnerer en komparator der pålægger det omvendte af den naturlige orden (stigende rækkefølge).
Det betyder, at arrayet sorterer elementer i stigende rækkefølge ved at bruge sort()-metoden, hvorefter reverseOrder()-metoden vender den naturlige rækkefølge, og vi får det sorterede array i faldende rækkefølge.
Syntaks:
public static Comparator reverseOrder()
Antag, at a[] er en matrix, der skal sorteres i faldende rækkefølge. Vi vil bruge metoden reverseOrder() på følgende måde:
Arrays.sort(a, Collections.reverseOrder());
Lad os sortere en strengmatrix i faldende rækkefølge.
streng til heltal
SortStringArrayExample3.java
import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {'Zimbabwe', 'South-Africa', 'India', 'America', 'Yugoslavia', ' Australia', 'Denmark', 'France', 'Netherlands', 'Italy', 'Germany'}; //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]