Programlamada, sıralama önemlidir çünkü bir şeyin unsurlarını koyar sıralamak belli bir sırayla. Yaygın olarak kullanılan düzen alfabetik sıradır veya doğal düzen . Sıralama, verileri kanonikleştirmek (verileri standart biçimde dönüştürme işlemi) ve insan tarafından okunabilir bir format üretmek için kullanılır. Bu bölümde öğreneceğiz Java'da String dizisi nasıl sıralanır kullanarak kullanıcı tanımlı mantık Ve Diziler. düzenlemek() yöntem
Java'da bir dize dizisini sıralamanın iki yolu vardır:
- Kullanma Kullanıcı tanımlı Mantık
- Kullanmak Diziler.sort() Yöntem
Kullanıcı Tanımlı Mantığı Kullanma
Her bir öğeyi geri kalan öğelerle karşılaştırarak bir dize dizisini sıralayabiliriz. Aşağıdaki örnekte de aynısını yaptık. İki for döngüsü kullandık. İçteki (ikinci) for döngüsü karşılaştırmalı tekrarlardan kaçınır. (countries[i].compareTo(countries[j])>0) koşulu 0'dan doğruysa, değiştirme işlemini gerçekleştirir ve diziyi sıralar.
java listeleri
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;>
Arrays.sort() Yöntemini Kullanma
Java'da, Diziler sağlayan Java.util paketinde tanımlanan sınıftır. düzenlemek() Bir diziyi artan düzende sıralama yöntemi. Kullanır Çift Pivot Hızlı Sıralama algoritması sıralama için. Onun karmaşıklığı O(n log(n)) . Bu bir statik ayrıştıran yöntem sıralamak parametre olarak kullanılır ve hiçbir şey döndürmez. Sınıf adını kullanarak doğrudan çağırabiliriz. int, float, double, long, char, byte türünden bir diziyi kabul eder.
Sözdizimi:
public static void sort(int[] a)
Nerede A kısa olacak bir dizidir.
Not: Arrays sınıfı gibi Collections sınıfı da diziyi sıralamak için sort() yöntemini sağlar. Ama aralarında bir fark var. Arrays sınıfının sort() yöntemi ilkel tür için çalışırken Collections sınıfının sort() yöntemi LinkedList, ArrayList vb. gibi Collections nesneleri için çalışır.
Sıralamayı aşağıdaki şekillerde yapabiliriz:
basit piton programı
Dize Dizisini Artan Sırada veya Alfabetik Sırayla Sıralayın
artan düzen elemanları en düşükten en yükseğe doğru sıralar. Aynı zamanda şu şekilde de bilinir: doğal düzen veya alfabetik sıra .
Arrays sınıfının sort() yöntemini kullanarak bir diziyi sıralayalım.
SortStringArrayExample2.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)); } }
Çıktı:
[Apple, Apricot, Blackberry, Custard apple, Date, Fig, Mulberry, Naseberry, Orange, Plum, Tamarind, Wood apple]
Dize Dizisini Azalan Sırada veya Ters Doğal Sırayla Sıralayın
tersOrder() Yöntemini Kullanma
Java Koleksiyonlar sınıf şunları sağlar Ters sipariş() Diziyi ters sözlükbilimsel sıraya göre sıralama yöntemi. Statik bir yöntemdir, dolayısıyla onu doğrudan sınıf adını kullanarak çağırabiliriz. Herhangi bir parametreyi ayrıştırmaz. Bir döndürür karşılaştırıcı bu da doğal sıralamanın (artan sıralama) tersini dayatır.
Bu, dizinin elemanları sort() yöntemini kullanarak artan sırada sıraladığı, ardından tersOrder() yönteminin doğal sıralamayı tersine çevirdiği ve sıralanan diziyi azalan düzende elde ettiğimiz anlamına gelir.
Sözdizimi:
public static Comparator reverseOrder()
Diyelim ki, a[] azalan düzende sıralanacak bir dizi. tersOrder() yöntemini şu şekilde kullanacağız:
Arrays.sort(a, Collections.reverseOrder());
Bir dize dizisini azalan düzende sıralayalım.
tamsayılara dize
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)); } }
Çıktı:
[Zimbabwe, Yugoslavia, South-Africa, Netherlands, Italy, India, Germany, France, Denmark, America, Australia]