CodeBlanks Logo Icon CodeBlanks

Dizi ile çoklu değer

Dizi döndürerek çoklu değer aktarmayı öğrenirsin.

Dizi döndürerek çoklu değer aktarma

Bir metot tek bir değer döndürür. Ama birden fazla değer aktarmak istersen, bir dizi içinde döndürebilirsin.

static int[] firstTwo(int a, int b) {
  return new int[]{a, b};
}
int[] pair = firstTwo(3, 7);
// pair: {3, 7}

Burada new int[]{a, b} ile iki elemanlı yeni bir dizi oluşturulup döndürülür. Dizi, metottan çıktıktan sonra bile geçerli kalır; çünkü nesne heap'te yaşar.

Dizi dönüşü ve kullanım

Dizi döndüren bir metodun sonucunu bir değişkene atar, sonra indekslerle elemanlara ulaşırsın. Dizinin uzunluğu .length ile okunur.

int[] pair = firstTwo(3, 7);
int a = pair[0];
int b = pair[1];
System.out.println(a + " " + b);
// 3 7

Bu yöntem, özellikle hesaplama sırasında üretilen birden çok değeri tek pakette döndürmek için kullanışlıdır. İleride kayıt (record) türlerini de göreceksin.

Uygulama Minimum ve maksimumu döndür

minMax adında static int[] metot tanımla; parametreler int a, int b. Küçük olanı indeks 0, büyük olanı indeks 1 yapacak şekilde iki elemanlı dizi döndürsün. main içinde minMax(9, 4) çağırıp sonucu Arrays.toString ile yazdır.

Başlangıç kodu

Main.java
import java.util.Arrays;

public class Main {
  public static void main(String[] args) {
    // Metodu 9 ve 4 ile çağır, sonucu yazdır
  }
  // minMax metodunu buraya tanımla
}

Örnek çözüm

Main.java
static int[] minMax(int a, int b) {
  if (a < b) return new int[]{a, b};
  return new int[]{b, a};
}
// main içinde:
System.out.println(Arrays.toString(minMax(9, 4)));

Beklenen çıktı

[4, 9]

Soru ve cevaplar

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

1 İfade ve anlamı eşleştir

Kavram Anlamı
new int[]{a, b} İki elemanlı yeni dizi
return null; Hiçbir şey dönmez
return new int[0]; Boş dizi döner
int[] pair Dizi referansı değişkeni

2 Boşluğu doldur: dizi döndür

Soru
static int[] firstTwo(int a, int b) {
  return ____{a, b};
}
Cevap
static int[] firstTwo(int a, int b) {
  return new int[]{a, b};
}

Açıklama: new int[]{a, b} yeni bir dizi oluşturur.

3 firstTwo(3, 7)[1] ifadesi ne döner?

Main.java
int[] pair = firstTwo(3, 7);
  • Hata fırlatır Doğru cevap
  • 3
  • 10
  • 7

Açıklama: İndeks 1, ikinci elemanı verir.

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