Java'daki Arrays.sort() yöntemi, bir dizinin öğelerini sıralamak için kullanılır.
- Karşılaştırıcılar kullanarak tüm dizi alt dizilerini ve hatta özel nesneleri sıralamak için esnek seçenekler sunar.
- Hem ilkel dizileri (int char vb.) hem de nesne dizilerini (Integer String vb.) sıralayabilir.
Örnek: Tam sayı ve karakter dizilerini artan düzende sıralama
Java
import java.util.Arrays; class Geeks{ public static void main(String[] args) { // Integer array int[] arr1 = {2 -1 3 4}; // Character array char[] arr2 = {'b' 'a' 'c' 'b'}; // Sorting arrays in ascending order Arrays.sort(arr1); Arrays.sort(arr2); // Print sorted arrays System.out.println(Arrays.toString(arr1)); System.out.println(Arrays.toString(arr2)); } }
Çıkış
[-1 2 3 4] [a b b c]
Açıklama:
- Arrays.sort() öğeleri artan sırada yeniden sıralar.
- Kopyalar kaldırılmaz.
- İlkel diziler özel karşılaştırıcıları kullanamaz.
Arrays.sort() Yönteminin Söz Dizimi
1. Dizinin tamamını sıralamak için
Diziler.sort();
2. Bir alt diziyi sıralamak için
public static void sort(int[] arr int from_Index int to_Index) ;
Parametreler:
- varış : Sıralanacak dizi.
- from_Index: Sıralanacak ilk öğenin (dahil) dizini.
- to_Index : Sıralanacak son öğenin (özel) dizini.
- İade Türü: void (Bu yöntem hiçbir şey döndürmez).
Not:
- Arrays.sort() kopyaları kaldırmaz; yalnızca öğeleri yeniden sıralar.
- İlkel türler özel karşılaştırıcıları kullanamaz; sıralama doğal (artan) sıradadır.
Örnek: Alt Diziyi Sıralama
Başlangıç (dahil) ve bitiş (hariç) endekslerini belirterek dizinin bir bölümünü sıralayabilirsiniz.
Java
import java.util.Arrays; public class Geeks{ public static void main(String[] args){ int[] arr = {2 -1 4 3}; // Sort elements from index 1 to 3 Arrays.sort(arr 1 4); // Print array after sorting subarray System.out.println(Arrays.toString(arr)); } }
Çıkış
[2 -1 3 4]
Açıklama: Yalnızca 1, 2 ve 3 numaralı indekslerdeki öğeler sıralanır; 0 dizinindeki öğe değişmeden kalır.
Azalan Sıralama
Bir diziyi azalan düzende sıralamak için karşılaştırıcı olarak Arrays.sort() yöntemini Collections.reverseOrder() ile birlikte kullanabiliriz.
Javaimport java.util.Arrays; import java.util.Collections; public class Geeks{ public static void main(String[] args) { // Integer array Integer[] arr = {2 -1 3 4}; Arrays.sort(arr Collections.reverseOrder()); System.out.println(Arrays.toString(arr)); // String array String[] str = {'Hii' 'Vishnu' 'chauhan'}; Arrays.sort(str Collections.reverseOrder()); System.out.println(Arrays.toString(str)); } }
Çıkış
[4 3 2 -1] [chauhan Vishnu Hii]
Açıklama:
- Yalnızca nesne dizilerinde çalışır; ilkel türler (int) karşılaştırıcıları kullanamaz.
- Dizeler için sözlükbilimsel olarak Z -> A şeklinde sıralar.
Karşılaştırıcı ile Özel Sıralama
kullanarak bir dizi nesneyi özel sıralama mantığı tanımlayarak sıralayabiliriz. Karşılaştırıcı arayüzü .
Javaimport java.util.*; // Custom class class Student{ int roll; String name; String address; Student(int roll String name String address){ this.roll = roll; this.name = name; this.address = address; } // Print student details public String toString() { return roll + ' ' + name + ' ' + address; } } // Comparator to sort by roll number class SortByRoll implements Comparator<Student>{ public int compare(Student s1 Student s2){ return s1.roll - s2.roll; } } class Geeks { public static void main(String[] args){ Student[] students = { new Student(1 'Ram' 'MP') new Student(2 'Shyam' 'UP') new Student(3 'Hari' 'Delhi') }; // Sort using custom comparator Arrays.sort(students new SortByRoll()); // Print sorted students for (Student s : students) System.out.println(s); } }
Çıkış
1 Ram MP 2 Shyam UP 3 Hari Delhi
Açıklama:
- Karşılaştırıcı, sınıfı değiştirmeden özel sıralama mantığına izin verir.
- Burada öğrenciler rulo numarasına göre sıralanır.
Karşılaştırılabilir Arayüz ile Doğal Sıralama
Aşağıdaki örnekte bir dizi Öğrenci nesnesini adlarına göre alfabetik olarak sıralıyoruz.
Javaimport java.util.Arrays; class Student implements Comparable<Student>{ int r; String n; String a; // Constructor public Student(int r String n String a){ this.r = r; this.n = n; this.a = a; } // compareTo method to sort by name public int compareTo(Student o){ return this.n.compareTo(o.n); } // toString() method to print Student details public String toString() { return this.r + ' ' + this.n + ' ' + this.a; } } public class Geeks{ public static void main(String[] args){ Student[] s = { new Student(1 'Ram' 'UP') new Student(2 'Shyam' 'MP') new Student(3 'Hari' 'Bihar') }; // Sorting students by name in alphabetical order Arrays.sort(s); for (Student student : s) System.out.println(student); } }
Çıkış
3 Hari Bihar 1 Ram UP 2 Shyam MP
Açıklama:
- Bu örnekte şunu kullanıyoruz: Karşılaştırılabilir arayüz Öğrenci nesneleri için doğal bir sıralama tanımlamak.
- Yöntemi uygulayarak, öğrencinin adına göre sıralamayı etkinleştirerek iki Öğrenci nesnesinin nasıl karşılaştırılacağını belirleriz.
Bu, Arrays.sort() yöntemini doğrudan bir dizi Öğrenci nesnesi üzerinde kullanarak bunları bir sıraya göre sıralamamıza olanak tanır ve burada ayrı bir karşılaştırıcıya ihtiyacımız yoktur.