logo

Hogyan rendezzünk string tömböt Java-ban

A programozásban, válogatás fontos, mert elemeit helyezi el an sor egy bizonyos sorrendben. A széles körben használt rend az ábécé sorrendje vagy természetes rend . A rendezés az adatok kanonizálására (az adatok szabványos formátumú konvertálásának folyamata) és az ember által olvasható formátum előállítására szolgál. Ebben a részben megtanuljuk hogyan kell rendezni a string tömböt Java nyelven segítségével felhasználó által definiált logika és Tömbök. fajta() módszer

Kétféleképpen rendezheti a string tömböt Java nyelven:

  • Használata Felhasználó által meghatározott Logika
  • Használni a Arrays.sort() Methodm

Felhasználó által meghatározott logika használata

Egy karakterlánc tömböt úgy rendezhetünk, hogy az egyes elemeket összehasonlítjuk a többi elemmel. A következő példában mi is ezt tettük. Kettőt használtunk a hurkok számára. A belső (második) for ciklus elkerüli az ismétléseket ehhez képest. Ha a feltétel (countries[i].compareTo(countries[j])>0) igaz, mint 0, akkor végrehajtja a cserét és rendezi a tömböt.

Java Collections keretrendszer

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

Az Arrays.sort() metódus használatával

Java nyelven, Tömbök az a java.util csomagban meghatározott osztály, amely biztosítja fajta() módszer egy tömb növekvő sorrendbe rendezésére. Használja Dual-Pivot Quicksort algoritmus válogatáshoz. A komplexitása az O(n log(n)) . Ez egy statikus metódus, amely elemzi egy sor paraméterként, és nem ad vissza semmit. Közvetlenül az osztálynév használatával hívhatjuk meg. Int, float, double, long, char, byte típusú tömböt fogad el.

Szintaxis:

 public static void sort(int[] a) 

Ahol a egy tömb, hogy rövid legyen.

Megjegyzés: Az Arrays osztályhoz hasonlóan a Collections osztály is biztosítja a sort() metódust a tömb rendezéséhez. De van köztük különbség. Az Arrays osztály sort() metódusa primitív típus esetén működik, míg a Collections osztály sort() metódusa gyűjtemények objektumoknál, például LinkedList, ArrayList stb.

A válogatást a következő módokon tudjuk végrehajtani:

    Növekvő sorrendbenvagy Ábécésorrend vagy Természetes Rend Csökkenő sorrendvagy Fordított természetes rend

A karakterlánc tömb rendezése növekvő vagy ábécé sorrendben

A növekvő sorrendben az elemeket a legalacsonyabbtól a legmagasabbig rendezi. Úgy is ismert, mint természetes rend vagy ábécésorrend .

Rendezzen egy tömböt az Arrays osztály sort() metódusával.

SortStringArrayExample2.java

ha másképp bash shellben
 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)); } } 

Kimenet:

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

Rendezze a karakterlánctömböt csökkenő vagy fordított sorrendben

A reverseOrder() metódus használata

Jáva Gyűjtemények osztály biztosítja a fordított sorrendben() módszer a tömb fordított lexikográfiai sorrendbe rendezésére. Ez egy statikus metódus, így közvetlenül az osztálynév használatával hívhatjuk meg. Nem elemzi egyetlen paramétert sem. Visszaadja a összehasonlító amely a természetes sorrend fordítottját írja elő (növekvő sorrend).

Ez azt jelenti, hogy a tömb a sort() metódussal növekvő sorrendbe rendezi az elemeket, majd a reverseOrder() metódus megfordítja a természetes sorrendet, és a rendezett tömböt csökkenő sorrendben kapjuk meg.

Szintaxis:

 public static Comparator reverseOrder() 

Tegyük fel, hogy a[] egy tömb, amelyet csökkenő sorrendben kell rendezni. A reverseOrder() metódust a következő módon fogjuk használni:

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

Rendezzünk egy karakterlánc tömböt csökkenő sorrendbe.

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

Kimenet:

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