logo

Java'da Arrays.sort()

GfG Practice'de deneyin ' title=

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.

Java
import 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ü .

Java
import 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.

Java
import 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.