logo

Jak sortować tablicę ciągów w Javie

W programowaniu sortowanie jest ważny, ponieważ umieszcza elementy an szyk w określonej kolejności. Powszechnie stosowany porządek jest kolejność alfabetyczna Lub naturalny porządek . Sortowanie służy do kanonizacji (procesu konwersji danych do postaci standardowej) danych i utworzenia formatu czytelnego dla człowieka. W tej części się dowiemy jak sortować tablicę String w Javie za pomocą logika zdefiniowana przez użytkownika I Tablice. sortować() metoda

Istnieją dwa sposoby sortowania tablicy ciągów w Javie:

  • Za pomocą Określony przez użytkownika Logika
  • Używając Tablice.sort() Metoda

Korzystanie z logiki zdefiniowanej przez użytkownika

Możemy sortować tablicę ciągów, porównując każdy element z pozostałymi elementami. W poniższym przykładzie zrobiliśmy to samo. Użyliśmy dwóch pętli for. Wewnętrzna (druga) pętla for pozwala uniknąć powtórzeń w porównaniu. Jeśli warunek (countries[i].compareTo(countries[j])>0) jest prawdziwy niż 0, przeprowadza zamianę i sortuje tablicę.

tabela reakcji

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

Korzystanie z metody Arrays.sort().

na Jawie, Tablice to klasa zdefiniowana w pakiecie java.util, który udostępnia sortować() metoda sortowania tablicy w kolejności rosnącej. To używa Algorytm szybkiego sortowania Dual-Pivot do sortowania. Jego złożoność jest O(n log(n)) . To jest statyczny metoda analizująca szyk jako parametr i nic nie zwraca. Możemy wywołać go bezpośrednio, używając nazwy klasy. Akceptuje tablicę typu int, float, double, long, char, byte.

Składnia:

 public static void sort(int[] a) 

Gdzie A jest tablicą, która ma być krótka.

Uwaga: Podobnie jak klasa Arrays, klasa Collections również udostępnia metodę sort() służącą do sortowania tablicy. Ale jest między nimi różnica. Metoda sort() klasy Arrays działa w przypadku typu pierwotnego, natomiast metoda sort() klasy Collections działa w przypadku obiektów Collections, takich jak LinkedList, ArrayList itp.

Sortowanie możemy przeprowadzić w następujący sposób:

    RosnącoLub Kolejność alfabetyczna Lub Naturalny porządek Kolejność malejącaLub Odwrócony porządek naturalny

Sortuj tablicę ciągów w porządku rosnącym lub alfabetycznym

The rosnąco układa elementy w kolejności od najniższej do najwyższej. Znany jest również jako naturalny porządek Lub kolejność alfabetyczna .

Posortujmy tablicę za pomocą metody sort() klasy Arrays.

SortStringArrayExample2.java

sortowanie listy w Javie
 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)); } } 

Wyjście:

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

Sortuj tablicę ciągów w kolejności malejącej lub w odwrotnej kolejności naturalnej

Korzystanie z metody ReverseOrder().

Jawa Kolekcje klasa zapewnia Odwrotna kolejność() metoda sortowania tablicy w odwrotnym porządku leksykograficznym. Jest to metoda statyczna, więc możemy ją wywołać bezpośrednio, używając nazwy klasy. Nie analizuje żadnego parametru. Zwraca a komparator narzuca to odwrotność porządku naturalnego (porządek rosnący).

Oznacza to, że tablica sortuje elementy w kolejności rosnącej przy pomocy metody sort(), następnie metoda ReverseOrder() odwraca naturalną kolejność i otrzymujemy posortowaną tablicę w kolejności malejącej.

Składnia:

 public static Comparator reverseOrder() 

Załóżmy, że a[] jest tablicą, którą należy posortować w kolejności malejącej. Metodę ReverseOrder() wykorzystamy w następujący sposób:

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

Posortujmy tablicę ciągów w kolejności malejącej.

porównywalna lista

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

Wyjście:

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