logo

Jak třídit řetězcové pole v Javě

v programování, třídění je důležité, protože vkládá prvky an pole v určitém pořadí. Hojně používaný řád je abecední pořadí nebo přirozený řád . Třídění se používá pro kanonizaci (proces převodu dat ve standardní podobě) dat a pro vytvoření formátu čitelného člověkem. V této části se naučíme jak třídit pole String v Javě použitím uživatelsky definovaná logika a Pole. seřadit () metoda

Existují dva způsoby, jak třídit pole řetězců v Javě:

  • Použitím Definováno uživatelem Logika
  • Za použití Arrays.sort() Methodm

Použití logiky definované uživatelem

Pole řetězců můžeme seřadit porovnáním každého prvku s ostatními prvky. V následujícím příkladu jsme udělali totéž. Použili jsme dvě smyčky for. Vnitřní (druhá) smyčka for se vyhýbá opakování ve srovnání. Pokud je podmínka (country[i].compareTo(countries[j])>0) pravdivá než 0, provede přehození a seřadí pole.

večeře vs večeře

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

Pomocí metody Arrays.sort()

v Javě, Pole je třída definovaná v balíčku java.util, který poskytuje seřadit () metoda k řazení pole ve vzestupném pořadí. Používá Dual-Pivot Quicksort algoritmus pro třídění. Jeho složitost je O(n log(n)) . Je to a statický metoda, která analyzuje an pole jako parametr a nic nevrací. Můžeme jej vyvolat přímo pomocí názvu třídy. Přijímá pole typu int, float, double, long, char, byte.

Syntax:

 public static void sort(int[] a) 

Kde A je pole, které má být krátké.

Poznámka: Stejně jako třída Arrays poskytuje třída Collections také metodu sort() k seřazení pole. Ale je mezi nimi rozdíl. Metoda sort() třídy Arrays funguje pro primitivní typ, zatímco metoda sort() třídy Collections funguje pro objekty Collections, jako jsou LinkedList, ArrayList atd.

Třídění můžeme provádět následujícími způsoby:

podtrhnout pomocí css
    Vzestupněnebo Abecední pořadí nebo Přirozený řád Sestupné pořadínebo Obrácený přirozený řád

Seřadit pole řetězců ve vzestupném nebo abecedním pořadí

The vzestupně seřadí prvky od nejnižšího po nejvyšší. Je také známý jako přirozený řád nebo abecední pořadí .

Pojďme seřadit pole pomocí metody sort() třídy 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)); } } 

Výstup:

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

Seřadit pole řetězců v sestupném pořadí nebo v opačném přirozeném pořadí

Použití metody reverseOrder().

Jáva Sbírky třída poskytuje obrácené pořadí() metoda k řazení pole v obráceném lexikografickém pořadí. Je to statická metoda, takže ji můžeme vyvolat přímo pomocí názvu třídy. Neanalyzuje žádný parametr. Vrací a srovnávač který ukládá opak přirozeného uspořádání (vzestupné pořadí).

To znamená, že pole třídí prvky ve vzestupném pořadí pomocí metody sort(), poté metoda reverseOrder() obrátí přirozené řazení a dostaneme seřazené pole v sestupném pořadí.

Syntax:

 public static Comparator reverseOrder() 

Předpokládejme, že a[] je pole, které se má seřadit v sestupném pořadí. Metodu reverseOrder() použijeme následujícím způsobem:

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

Seřaďme pole řetězců v sestupném pořadí.

výběr řazení java

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

Výstup:

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