1. Array bergerigi

Sebagai pemrogram Java, Anda tidak hanya dapat menukar baris array dua dimensi, tetapi juga membuat array sesuai keinginan Anda.

Katakanlah Anda ingin baris pertama dari array dua dimensi memiliki panjang 10, dan Anda ingin panjang baris kedua menjadi 50. Bisakah kita melakukan itu? Ya kita bisa.

Pertama, kita perlu membuat 'container of containers' — ini adalah larik pertama, yang akan menyimpan referensi ke larik baris. Begini caranya:

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

Anda cukup menghilangkan dimensi kedua , dan mesin Java akan membuat wadah dari wadah. Inilah yang akan ada di memori setelah mengeksekusi kode ini:

Array bergerigi di Jawa

Dan, Anda sudah tahu cara membuat array satu dimensi 🙂

Seperti inilah tampilan kode yang dihasilkan:

// Matrix of important data
int[][] matrix = new int[2][];
matrix[0] = new int[10];
matrix[1] = new int[50]
Array dua dimensi

Baris ke-nol adalah array 10elemen
Baris pertama adalah array 50elemen

Kami baru saja membuat apa yang disebut " larik bergerigi ".

Dan jika sekarang kita ingin menampilkan semua elemen array ini di layar, maka properti array lengthakan berguna: lagipula, panjang baris array berbeda.

Omong-omong, bagaimana Anda menemukan panjang 'wadah wadah' dalam contoh kita? Ini juga merupakan objek array, yang artinya memiliki panjang. Jawaban yang benar adalah matrix.length.

Bagaimana dengan array yang terdiri dari baris kita?matrix[0].length



2. Bekerja dengan array dua dimensi

Misalkan Anda ingin menampilkan array dua dimensi. Bagaimana kamu melakukannya?

Kode kita akan terlihat seperti ini:

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();
}
Buat sebuah array
Isi array dengan nilai


Outer loop yang berulang di atas baris array.
Lingkaran dalam yang berulang pada sel-sel dari satu baris.

Anda membutuhkan dua loop bersarang. Yang pertama kita sebut outer , dan yang kedua — inner .

Di loop luar ( ivariabel), kita secara berurutan melewati semua baris (array) yang membentuk array dua dimensi kita. Setiap nilai isesuai dengan baris dengan indeks itu.

Di loop dalam ( jvariabel), kami mengulangi semua sel di baris. Berkat loop dalam, baris yang terdiri dari nilai array satu dimensi akan ditampilkan di layar.

Inilah yang akan ditampilkan:

Satu baris array diproses
1 2 3 4 5 6
Dua baris array diproses
1 2 3 4 5 6
1 2 3
Tiga baris array diproses
1 2 3 4 5 6
1 2 3
1


3. Array multidimensi

Satu lagi fakta menarik tentang array, yang mungkin sudah Anda duga. Jika Anda dapat membuat larik dua dimensi, apakah Anda dapat membuat larik tiga dimensi?

Ya, Anda dapat membuat larik dengan dimensi apa pun. Array seperti itu disebut 'multidimensi'.

Sekadar iseng, mari buat array multidimensi yang memiliki 4 dimensi.

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

Kode ini terlalu sederhana, bukan?

Bagaimana jika Anda membuatnya secara manual?

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
  }
}

Dan itu hanya membuat array! Maka Anda juga perlu bekerja dengannya.

Tugas bonus: menulis kode yang menampilkan semua nilai dalam larik tiga dimensi.