logo

Hoe String Array in Java te sorteren

Bij het programmeren, sorteren is belangrijk omdat het elementen van een reeks in een bepaalde volgorde. De veelgebruikte volgorde is alfabetische volgorde of natuurlijke orde . Het sorteren wordt gebruikt voor het canonicaliseren (het proces van het converteren van gegevens in de standaardvorm) van gegevens en voor het produceren van een voor mensen leesbaar formaat. In dit gedeelte zullen we leren hoe String-array in Java te sorteren gebruik makend van door de gebruiker gedefinieerde logica En Arrays. soort() methode

Er zijn twee manieren om een ​​stringarray in Java te sorteren:

  • Gebruik makend van Gebruiker gedefinieerde Logica
  • De ... gebruiken Arrays.sort() Methode

Door de gebruiker gedefinieerde logica gebruiken

We kunnen een stringarray sorteren door elk element met de overige elementen te vergelijken. In het volgende voorbeeld hebben we hetzelfde gedaan. We hebben er twee gebruikt voor lussen. De binnenste (tweede) for-lus vermijdt de herhalingen in vergelijking. Als de voorwaarde (countries[i].compareTo(countries[j])>0) waar is dan 0, wordt er gewisseld en wordt de array gesorteerd.

java hallo wereld

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

De methode Arrays.sort() gebruiken

Op Java, Arrays is de klasse die is gedefinieerd in het java.util-pakket dat voorziet in soort() methode om een ​​array in oplopende volgorde te sorteren. Het gebruikt Dual-Pivot Quicksort-algoritme voor sorteren. De complexiteit ervan is O(n logboek(n)) . Het is een statisch methode die een reeks als parameter en retourneert niets. We kunnen het rechtstreeks aanroepen door de klassenaam te gebruiken. Het accepteert een array van het type int, float, double, long, char, byte.

Syntaxis:

 public static void sort(int[] a) 

Waar A is een array die kort moet zijn.

Opmerking: Net als de klasse Arrays biedt de klasse Collections ook de methode sort() om de array te sorteren. Maar er is een verschil tussen hen. De methode sort() van de klasse Arrays werkt voor het primitieve type, terwijl de methode sort() van de klasse Collections werkt voor objectenverzamelingen, zoals LinkedList, ArrayList, enz.

Sorteren kunnen wij op de volgende manieren uitvoeren:

    Oplopende volgordeof Alfabetische volgorde of Natuurlijke orde Aflopende volgordeof Omgekeerde natuurlijke orde

Sorteer de stringarray in oplopende volgorde of alfabetische volgorde

De oplopende volgorde rangschikt de elementen van de laagste naar de hoogste volgorde. Het is ook bekend als natuurlijke orde of alfabetische volgorde .

Laten we een array sorteren met de methode sort() van de klasse Arrays.

SortStringArrayExample2.java

Hoe een bestand te openen met 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)); } } 

Uitgang:

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

Sorteer de stringarray in aflopende volgorde of in omgekeerde natuurlijke volgorde

Met behulp van de reverseOrder()-methode

Java Collecties klasse biedt de omgekeerde volgorde() methode om de array in omgekeerde lexicografische volgorde te sorteren. Het is een statische methode, dus we kunnen deze rechtstreeks aanroepen door de klassenaam te gebruiken. Er worden geen parameters geparseerd. Het retourneert een comparator dat het omgekeerde van de natuurlijke ordening oplegt (oplopende volgorde).

Het betekent dat de array elementen in oplopende volgorde sorteert met behulp van de sort()-methode, waarna de reverseOrder()-methode de natuurlijke volgorde omkeert, en we de gesorteerde array in aflopende volgorde krijgen.

Syntaxis:

 public static Comparator reverseOrder() 

Stel dat a[] een array is die in aflopende volgorde moet worden gesorteerd. We zullen de methode reverseOrder() op de volgende manier gebruiken:

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

Laten we een stringarray in aflopende volgorde sorteren.

tekenreeks naar gehele getallen

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

Uitgang:

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