Arrays.copyOf
- Java kursu
- Başlangıç
- Ders 62/116
- 4 dk
Arrays.copyOf ile kopyalamayı öğrenirsin.
Dizi kopyalama: Arrays.copyOf
Bir dizinin kopyasını almak için Arrays.copyOf kullanılır. İlk parametre kaynak dizi, ikinci parametre yeni dizinin uzunluğudur.
int[] src = {1, 2, 3};
int[] copy = Arrays.copyOf(src, 3);
// copy: {1, 2, 3}Yeni uzunluk kaynak dizininkinden küçükse dizi kırpılır; büyükse yeni elemanlar türün varsayılan değeriyle (int için 0) doldurulur. Orijinal dizi hiç değişmez.
Kırpma ve genişletme
İkinci parametreyi değiştirerek diziyi kırpabilir veya genişletebilirsin. Kırpma, orijinalın baştan bir kısmını alır; genişletme, fazlalığı varsayılan değerle doldurur.
int[] src = {10, 20, 30, 40};
int[] top2 = Arrays.copyOf(src, 2);
// top2: {10, 20}
int[] ext5 = Arrays.copyOf(src, 5);
// ext5: {10, 20, 30, 40, 0}Bu davranış, sıfırdan yeni dizi oluşturmaktan hızlıdır; çünkü veriler tek seferde kopyalanır.
Uygulama İlk üç ürünün kopyasını al
Verilen 5 ürün kodundan ilk üçünü Arrays.copyOf ile kopyala ve kopyayı Arrays.toString ile yazdır.
Başlangıç kodu
public class Main {
public static void main(String[] args) {
int[] codes = {101, 102, 103, 104, 105};
// İlk üç kodu kopyala
// Kopyayı yazdır
}
}Örnek çözüm
int[] top3 = Arrays.copyOf(codes, 3);
System.out.println(Arrays.toString(top3));Beklenen çıktı
[101, 102, 103]
Soru ve cevaplar
Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.
1 Arrays.copyOf(src, 5) ne döndürür (src uzunluğu 3)?
int[] src = {1, 2, 3};
int[] copy = Arrays.copyOf(src, 5);- 5 elemanlı dizi; son 2 eleman 0
- 3 elemanlı dizi; uzunluk değişmez
- 5 elemanlı dizi; son 2 eleman null Doğru cevap
- Hata fırlatır; uzunluk aşılır
Açıklama: int dizide fazlalık 0 ile doldurulur.
2 Boşluğu doldur: kopya al
int[] src = {1, 2, 3};
int[] copy = Arrays.____(src, 3);
int[] src = {1, 2, 3};
int[] copy = Arrays.copyOf(src, 3);
Açıklama: Arrays.copyOf(src, 3) yeni dizi döner.
3 Çağrı ve sonucu eşleştir
| Kavram | Anlamı |
|---|---|
copyOf(src, 2) |
İlk 2 elemanı alır |
copyOf(src, 5) |
Fazlalık 0 ile dolar |
copyOf(src, 0) |
Boş dizi döner |
copyOf(src, 3) |
Aynı uzunlukta kopya |