logo

So sortieren Sie String-Arrays in Java

Beim Programmieren Sortierung ist wichtig, weil es Elemente eines enthält Array in einer bestimmten Reihenfolge. Die weit verbreitete Reihenfolge ist alphabetische Reihenfolge oder natürliche Reihenfolge . Die Sortierung wird zur Kanonisierung (dem Prozess der Konvertierung von Daten in die Standardform) von Daten und zur Erstellung eines für Menschen lesbaren Formats verwendet. In diesem Abschnitt werden wir lernen So sortieren Sie ein String-Array in Java verwenden benutzerdefinierte Logik Und Arrays. Sortieren() Methode

Es gibt zwei Möglichkeiten, ein String-Array in Java zu sortieren:

  • Benutzen Benutzerdefinierte Logik
  • Verwendung der Arrays.sort() Methodem

Verwendung benutzerdefinierter Logik

Wir können ein String-Array sortieren, indem wir jedes Element mit den übrigen Elementen vergleichen. Im folgenden Beispiel haben wir dasselbe getan. Wir haben zwei for-Schleifen verwendet. Die innere (zweite) for-Schleife vermeidet im Vergleich die Wiederholungen. Wenn die Bedingung (countries[i].compareTo(countries[j])>0) wahrer als 0 ist, führt sie den Austausch durch und sortiert das Array.

Java in Array auflisten

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

Verwenden der Arrays.sort()-Methode

In Java, Arrays ist die im Paket java.util definierte Klasse, die Folgendes bereitstellt Sortieren() Methode zum Sortieren eines Arrays in aufsteigender Reihenfolge. Es benutzt Dual-Pivot-Quicksort-Algorithmus zum Sortieren. Seine Komplexität ist O(n log(n)) . es ist ein statisch Methode, die eine analysiert Array als Parameter und gibt nichts zurück. Wir können es direkt aufrufen, indem wir den Klassennamen verwenden. Es akzeptiert ein Array vom Typ int, float, double, long, char, byte.

Syntax:

 public static void sort(int[] a) 

Wo A ist ein Array, um es kurz zu machen.

Hinweis: Wie die Arrays-Klasse stellt auch die Collections-Klasse die Methode sort() zum Sortieren des Arrays bereit. Aber es gibt einen Unterschied zwischen ihnen. Die sort()-Methode der Arrays-Klasse funktioniert für primitive Typen, während die sort()-Methode der Collections-Klasse für Objektsammlungen wie LinkedList, ArrayList usw. funktioniert.

Wir können die Sortierung auf folgende Arten durchführen:

Mathe-Pow Java
    Aufsteigende Reihenfolgeoder Alphabetischer Reihenfolge oder Natürliche Reihenfolge Absteigende Reihenfolgeoder Umkehren der natürlichen Ordnung

Sortieren Sie das String-Array in aufsteigender oder alphabetischer Reihenfolge

Der aufsteigende Reihenfolge Ordnet die Elemente in der niedrigsten bis höchsten Reihenfolge an. Es ist auch bekannt als natürliche Reihenfolge oder alphabetischer Reihenfolge .

Sortieren wir ein Array mit der Methode sort() der Klasse Arrays.

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

Ausgabe:

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

Sortieren Sie das String-Array in absteigender Reihenfolge oder in umgekehrter natürlicher Reihenfolge

Verwenden der Methode reverseOrder()

Java Sammlungen Klasse bietet die umgekehrte Reihenfolge() Methode zum Sortieren des Arrays in umgekehrter lexikografischer Reihenfolge. Da es sich um eine statische Methode handelt, können wir sie direkt über den Klassennamen aufrufen. Es werden keine Parameter analysiert. Es gibt a zurück Komparator das erzwingt die Umkehrung der natürlichen Reihenfolge (aufsteigende Reihenfolge).

Das bedeutet, dass das Array die Elemente mithilfe der Methode sort() in aufsteigender Reihenfolge sortiert. Anschließend kehrt die Methode reverseOrder() die natürliche Reihenfolge um und wir erhalten das sortierte Array in absteigender Reihenfolge.

Syntax:

 public static Comparator reverseOrder() 

Angenommen, a[] ist ein Array, das in absteigender Reihenfolge sortiert werden soll. Wir werden die Methode reverseOrder() wie folgt verwenden:

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

Sortieren wir ein String-Array in absteigender Reihenfolge.

string a int

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

Ausgabe:

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