1. Pürüzlü diziler

Bir Java programcısı olarak, yalnızca iki boyutlu bir dizinin satırlarını değiştiremez, aynı zamanda istediğiniz gibi bir dizi oluşturabilirsiniz.

Diyelim ki iki boyutlu bir dizinin ilk satırının uzunluğunun olmasını 10ve ikinci satırın uzunluğunun da olmasını istiyorsunuz 50. Bunu yapabilir miyiz? Evet yapabiliriz.

İlk olarak, bir 'konteyner kabı' yaratmamız gerekiyor - bu, satır dizilerine referansları depolayacak olan ilk dizidir. Bu şekilde yapılır:

int[][] name = new int[height][];

Siz sadece ikinci boyutu çıkarırsınız ve Java makinesi bir kapsayıcısı oluşturur. Bu kodu çalıştırdıktan sonra bellekte olacak olan budur:

Java'da pürüzlü diziler

Ve zaten tek boyutlu dizilerin nasıl oluşturulacağını biliyorsunuz 🙂

Ortaya çıkan kod şöyle görünecek:

// Matrix of important data
int[][] matrix = new int[2][];
matrix[0] = new int[10];
matrix[1] = new int[50]
İki boyutlu dizi Sıfırıncı sıra bir eleman

dizisidir İlk sıra bir eleman dizisidir10
50

Az önce sözde bir " tırtıklı dizi " oluşturduk .

Ve şimdi bu dizinin tüm öğelerini ekranda görüntülemek istiyorsak, dizinin lengthözelliği kullanışlı olacaktır: sonuçta dizinin satırlarının uzunlukları farklıdır.

Bu arada, örneğimizde bir 'konteyner kabının' uzunluğunu nasıl buluyorsunuz? Aynı zamanda bir dizi nesnesidir, yani bir uzunluğa sahiptir. Doğru cevap dır matrix.length.

Satırlarımızı oluşturan diziler için ne dersiniz?matrix[0].length



2. İki boyutlu bir dizi ile çalışmak

İki boyutlu bir dizi görüntülemek istediğinizi varsayalım. Bunu nasıl yaptın?

Kodumuz şöyle bir şeye benzeyecek:

int[][] matrix = new int[3][];
matrix[0] = new int[]{1, 2, 3, 4, 5, 6};
matrix[1] = new int[]{1, 2, 3};
matrix[2] = new int[]{1};
for (int i = 0; i < matrix.length; i++) {
   for (int j = 0; j < matrix[i].length; j++)
      System.out.print( matrix[i][j] + " " );
   System.out.println();
}
Bir dizi oluşturun
Diziyi değerlerle doldurun


Dizinin satırları üzerinde yinelenen dış döngü.
Tek bir sıranın hücreleri üzerinde yinelenen iç döngü.

İki iç içe döngüye ihtiyacınız var. İlkini dış , ikincisini de iç olarak adlandırırız .

Dış döngüde ( ideğişken), iki boyutlu dizimizi oluşturan tüm satırları (dizileri) sırayla geçiyoruz. Her değer, io dizine sahip bir satıra karşılık gelir.

İç döngüde ( jdeğişken), satırlardaki tüm hücreleri yineliyoruz. İç döngü sayesinde ekranda tek boyutlu bir dizinin değerlerinden oluşan bir satır görüntülenecektir.

Görüntülenecek olan budur:

Dizinin bir satırı işlenir
1 2 3 4 5 6
Dizinin iki satırı işlenir
1 2 3 4 5 6
1 2 3
Dizinin üç satırı işlenir
1 2 3 4 5 6
1 2 3
1


3. Çok boyutlu diziler

Diziler hakkında muhtemelen zaten tahmin ettiğiniz ilginç bir gerçek daha. İki boyutlu bir dizi yapabiliyorsanız, üç boyutlu bir dizi yapabilir misiniz?

Evet, herhangi bir boyutta bir dizi oluşturabilirsiniz. Bu tür dizilere 'çok boyutlu' denir.

Sadece eğlence için, 4 boyutu olan çok boyutlu bir dizi oluşturalım.

 int[][][][] matrix = new int[2][3][4][5];

Bu kod çok basit, değil mi?

Manuel olarak oluşturursanız ne olur?

int[][][][] matrix;
matrix = new int[2][][][];                // Create a 2-element array of references to references to references
for (int i = 0; i < matrix.length; i++)
{
  matrix[i] = new int[3][][];                // Create a 3-element array of references to references
  for (j = 0; j < matrix[i].length; j++)
  {
    matrix[i][j] = new int[4][];             // Create a 4-element array of references
    for (k = 0; k < matrix[i][j].length; k++)
      matrix[i][j][k] = new int[5];          // Create 5-element arrays of integers
  }
}

Ve bu sadece diziyi yaratmak! O zaman bir şekilde onunla da çalışmalısın.

Bonus görev: tüm değerleri üç boyutlu bir dizide görüntüleyen kod yazın.