V programovaní, triedenie je dôležité, pretože vkladá prvky an pole v určitom poradí. Široko používaný poriadok je v abecednom poradí alebo prirodzený poriadok . Triedenie sa používa na kanonizáciu (proces konverzie údajov v štandardnej forme) údajov a na vytvorenie formátu čitateľného pre človeka. V tejto časti sa naučíme ako triediť pole reťazcov v jazyku Java použitím užívateľom definovaná logika a Polia. zoradiť () metóda
Existujú dva spôsoby, ako triediť pole reťazcov v jazyku Java:
- Použitím Definované užívateľom Logika
- Pomocou Arrays.sort() Methodm
Používanie užívateľom definovanej logiky
Pole reťazcov môžeme zoradiť porovnaním každého prvku so zvyšnými prvkami. V nasledujúcom príklade sme urobili to isté. Použili sme dve slučky for. Vnútorná (druhá) slučka for sa vyhýba opakovaniam v porovnaní. Ak je podmienka (country[i].compareTo(country[j])>0) pravdivá ako 0, vykoná sa zámena a zoradí pole.
samostatný reťazec v jazyku Java
SortStringArrayExample1.java
import java.util.Arrays; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {'Zimbabwe', 'South-Africa', 'India', 'America', 'Yugoslavia', ' Australia', 'Denmark', 'France', 'Netherlands', 'Italy', 'Germany'}; 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'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 = {'Wood apple', 'Blackberry', 'Date', 'Naseberry', 'Tamarind', 'Fig', 'Mulberry', 'Apple', 'Plum', 'Orange', 'Custard apple', 'Apricot'}; //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'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 = {'Zimbabwe', 'South-Africa', 'India', 'America', 'Yugoslavia', ' Australia', 'Denmark', 'France', 'Netherlands', 'Italy', 'Germany'}; //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;>
Pomocou metódy Arrays.sort().
v Jave Polia je trieda definovaná v balíku java.util, ktorý poskytuje zoradiť () metóda na zoradenie poľa vo vzostupnom poradí. Používa sa Algoritmus rýchleho triedenia s dvojitým pivotom na triedenie. Jeho zložitosť je O(n log(n)) . Je to a statické metóda, ktorá analyzuje an pole ako parameter a nič nevracia. Môžeme ho vyvolať priamo pomocou názvu triedy. Akceptuje pole typu int, float, double, long, char, byte.
Syntax:
public static void sort(int[] a)
Kde a je pole, ktoré má byť krátke.
Poznámka: Podobne ako trieda Arrays, aj trieda Collections poskytuje metódu sort() na triedenie poľa. Ale je medzi nimi rozdiel. Metóda sort() triedy Arrays funguje pre primitívny typ, zatiaľ čo metóda sort() triedy Collections funguje pre objekty Collections, ako sú LinkedList, ArrayList atď.
Triedenie môžeme vykonať nasledujúcimi spôsobmi:
Usporiadať pole reťazcov vo vzostupnom poradí alebo v abecednom poradí
The vzostupné poradie usporiada prvky v poradí od najnižšieho po najvyššie. Je tiež známy ako prirodzený poriadok alebo abecedné poradie .
Zoraďme pole pomocou metódy sort() triedy Arrays.
SortStringArrayExample2.java
statická java
import java.util.Arrays; public class SortStringArrayExample2 { public static void main(String args[]) { //defining an array of type string String[] countries = {'Wood apple', 'Blackberry', 'Date', 'Naseberry', 'Tamarind', 'Fig', 'Mulberry', 'Apple', 'Plum', 'Orange', 'Custard apple', 'Apricot'}; //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ýkon:
[Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple]
Usporiadať pole reťazcov v zostupnom poradí alebo v opačnom prirodzenom poradí
Použitie metódy reverseOrder().
Java zbierky trieda poskytuje obrátené poradie() metóda na zoradenie poľa v obrátenom lexikografickom poradí. Je to statická metóda, takže ju môžeme vyvolať priamo pomocou názvu triedy. Neanalyzuje žiadny parameter. Vracia a komparátor ktorý ukladá opak prirodzeného usporiadania (vzostupné poradie).
Znamená to, že pole triedi prvky vo vzostupnom poradí pomocou metódy sort(), potom metóda reverseOrder() obráti prirodzené zoradenie a dostaneme zoradené pole v zostupnom poradí.
Syntax:
public static Comparator reverseOrder()
Predpokladajme, že a[] je pole, ktoré sa má zoradiť v zostupnom poradí. Metódu reverseOrder() použijeme nasledujúcim spôsobom:
Arrays.sort(a, Collections.reverseOrder());
Zoraďme pole reťazcov v zostupnom poradí.
reťazec na celé číslo java
SortStringArrayExample3.java
import java.util.*; public class SortStringArrayExample1 { public static void main(String args[]) { //defining an array of type String String[] countries = {'Zimbabwe', 'South-Africa', 'India', 'America', 'Yugoslavia', ' Australia', 'Denmark', 'France', 'Netherlands', 'Italy', 'Germany'}; //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ýkon:
[Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia]