1. Tatasusunan bergerigi
Sebagai pengaturcara Java, anda bukan sahaja boleh menukar baris tatasusunan dua dimensi, tetapi juga membina tatasusunan mengikut cara yang anda mahukan.
Katakan anda mahu baris pertama tatasusunan dua dimensi mempunyai panjang 10
, dan anda mahu panjang baris kedua ialah 50
. Bolehkah kita berbuat demikian? Ya kita boleh.
Mula-mula, kita perlu mencipta 'bekas bekas' — ini ialah tatasusunan pertama, yang akan menyimpan rujukan kepada tatasusunan baris. Ini adalah cara ia dilakukan:
int[][] name = new int[height][];
Anda hanya tinggalkan dimensi kedua , dan mesin Java mencipta bekas bekas. Inilah yang akan ada dalam ingatan selepas melaksanakan kod ini:

Dan, anda sudah tahu cara membuat tatasusunan satu dimensi 🙂
Inilah rupa kod yang terhasil:
|
Tatasusunan dua dimensi Baris sifar ialah tatasusunan 10 elemen Baris pertama ialah tatasusunan 50 elemen |
Kami baru sahaja mencipta apa yang dipanggil " tatasusunan bergerigi ".
Dan jika kita kini mahu memaparkan semua elemen tatasusunan ini pada skrin, maka sifat tatasusunan length
akan berguna: lagipun, panjang baris tatasusunan adalah berbeza.
Dengan cara ini, bagaimana anda mencari panjang 'bekas bekas' dalam contoh kami? Ia juga merupakan objek tatasusunan, yang bermaksud ia mempunyai panjang. Jawapan yang betul ialah matrix.length
.
Bagaimana pula dengan tatasusunan yang terdiri daripada baris kami?matrix[0].length
2. Bekerja dengan tatasusunan dua dimensi
Katakan anda ingin memaparkan tatasusunan dua dimensi. Bagaimana anda melakukannya?
Kod kami akan kelihatan seperti ini:
|
Cipta tatasusunan Isi tatasusunan dengan nilai Gelung luar yang lelaran pada baris tatasusunan. Gelung dalaman yang berulang ke atas sel satu baris. |
Anda memerlukan dua gelung bersarang. Yang pertama kita panggil outer , dan yang kedua — inner .
Dalam gelung luar ( i
pembolehubah), kami secara berurutan melalui semua baris (tatasusunan) yang membentuk tatasusunan dua dimensi kami. Setiap nilai i
sepadan dengan baris dengan indeks itu.
Dalam gelung dalam ( j
pembolehubah), kami melelang ke atas semua sel dalam baris. Terima kasih kepada gelung dalam, satu baris, yang terdiri daripada nilai tatasusunan satu dimensi, akan dipaparkan pada skrin.
Inilah yang akan dipaparkan:
Satu baris tatasusunan diproses |
|
Dua baris tatasusunan diproses |
|
Tiga baris tatasusunan diproses |
|
3. Tatasusunan berbilang dimensi
Satu lagi fakta menarik tentang tatasusunan, satu fakta yang anda mungkin sudah meneka. Jika anda boleh membuat tatasusunan dua dimensi, maka bolehkah anda membuat tatasusunan tiga dimensi?
Ya, anda boleh membuat tatasusunan mana-mana dimensi. Tatasusunan sedemikian dipanggil 'multidimensi'.
Hanya untuk keseronokan, mari buat tatasusunan berbilang dimensi yang mempunyai 4 dimensi.
int[][][][] matrix = new int[2][3][4][5];
Kod ini terlalu mudah, bukan?
Bagaimana jika anda menciptanya 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 mencipta tatasusunan! Kemudian anda juga perlu bekerja dengannya entah bagaimana.
Tugas bonus: tulis kod yang memaparkan semua nilai dalam tatasusunan tiga dimensi.
GO TO FULL VERSION