CodeBlanks Logo Icon CodeBlanks

Arrays.sort

Arrays.sort ile sıralamayı öğrenirsin.

Arrays.sort ile sıralama

Java'da bir diziyi küçükten büyüğe sıralamanın en kolay yolu Arrays.sort metodudur. Bu metod diziyi yerinde sıralar: yeni bir dizi dönmez, mevcut dizinin elemanlarını düzenler.

int[] scores = {78, 92, 55};
Arrays.sort(scores);
// scores artık: {55, 78, 92}

Metot diziyi artan sırada düzenler. İleride göreceğin ikili arama (binary search) için dizi sıralı olmak zorundadır.

Sıralama ve ikili arama ilişkisi

Bazı metotlar sıralı dizi ister. Arrays.binarySearch bunlardan biridir: hızlı arama için dizinin sıralı olmasını şart koşar.

Eğer dizi sıralı değilse binarySearch yanlış sonuç döndürebilir; bu yüzden önce Arrays.sort çağrısı yapılır.

int[] nums = {4, 2, 7, 1};
Arrays.sort(nums);
int i = Arrays.binarySearch(nums, 4);
// i = 2

Sıralama aynı zamanda en küçük ve en büyük değerleri dizinin uçlarına taşır; bu da dizi üzerinde işlem yapmayı kolaylaştırır.

Uygulama Puanları sırala ve yazdır

Aşağıdaki puanları küçükten büyüğe sırala ve her birini ayrı satıra yazdır.

Başlangıç kodu

Main.java
public class Main {
  public static void main(String[] args) {
    int[] scores = {78, 92, 55, 64, 88};
    // Puanları küçükten büyüğe sırala
    // Her puanı ayrı satırda yazdır
  }
}

Örnek çözüm

Main.java
Arrays.sort(scores);
for (int s : scores) {
  System.out.println(s);
}

Beklenen çıktı

55
64
78
88
92

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Arrays.sort(scores) çağrısından sonra ne olur?

Main.java
int[] scores = {78, 92, 55};
Arrays.sort(scores);
  • Derleme hatası verir, çünkü Arrays.sort int[] kabul etmez
  • scores dizisi değişmez, sıralı kopya döner
  • Yeni bir int[] döner, scores aynı kalır
  • scores dizisi yerinde sıralanır, geriye değer dönmez Doğru cevap

Açıklama: Arrays.sort void bir metottur; diziyi yerinde sıralar.

2 Boşluğu doldur: diziyi sırala

Soru
int[] nums = {9, 3, 7};
____;
System.out.println(nums[0]);
Cevap
int[] nums = {9, 3, 7};
Arrays.sort(nums);
System.out.println(nums[0]);

Açıklama: Arrays.sort(nums) çağrısı diziyi sıralar.

3 Metot ile davranışı eşleştir

Kavram Anlamı
Arrays.sort(x) Diziyi yerinde sıralar
Arrays.toString(x) Diziyi metne çevirir
Arrays.binarySearch(x, v) Sıralı dizide değer arar
Arrays.copyOf(x, n) Dizinin kopyasını alır

Başlangıç bölümündeki tüm dersler