1. Susunan dalam ingatan
Dalam contoh sebelum ini, ilustrasi adalah sedikit tidak tepat.
Apabila mencipta tatasusunan (seperti semasa mencipta rentetan), dua blok memori berasingan diperuntukkan: satu untuk menyimpan tatasusunan ( bekas) itu sendiri dan blok kedua untuk pembolehubah yang menyimpan alamatnya . Gambar di bawah mewakili penjelasan ini:
Memori yang diperuntukkan untuk tatasusunan 10
int
elemen dan int[]
pembolehubah yang menyimpan alamat tatasusunan int
, ditunjukkan dalam warna hijau.
Sebagai perbandingan, pembolehubah biasa int
yang menyimpan nilai 199
ditunjukkan dalam warna biru.
Ini sedikit mengingatkan anda menyimpan rentetan dalam ingatan, bukan?
Betul, rentetan. Dan sama seperti apabila anda bekerja dengan rentetan, anda boleh menetapkan pembolehubah tatasusunan kepada satu sama lain:
Kod | Penjelasan |
---|---|
|
Buat tatasusunan 10 int elemen. Berikan nilai 4 kepada sel dengan indeks 2 . Berikan nilai 9 kepada sel dengan indeks 7 . Dalam b pembolehubah, simpan alamat yang disimpan dalam a pembolehubah. Sekarang a dan b tuding ke objek tatasusunan yang sama dalam ingatan. Dalam sel objek tatasusunan dengan index 9 , tulis jumlah nilai yang disimpan dalam sel 2 (yang menyimpan nilai 4 ) dan 7 (yang menyimpan nilai 9 ). |
Objek tatasusunan kekal di tempatnya dan a
pembolehubah b
dan menyimpan alamat (rujukan) yang sama kepada objek yang sama. Tengok gambar:

2. Butiran lanjut tentang bekerja dengan tatasusunan
Anda boleh mencipta pelbagai elemen dalam apa jua jenis. Untuk melakukan ini, hanya tulis kurungan segi empat sama selepas nama jenis. Secara umum, membuat tatasusunan kelihatan seperti ini:
type[] name = new type[number];
Di mana jenis ialah jenis elemen yang akan kami simpan dalam tatasusunan. Nama ialah nama pembolehubah yang akan kami gunakan untuk merujuk kepada tatasusunan, dan nombor ialah bilangan sel dalam tatasusunan.
Contoh di atas ialah bentuk kanonik untuk mencipta pembolehubah tatasusunan dan objek tatasusunan. Pada hakikatnya, ini adalah dua entiti yang berasingan.
Anda boleh membuat pembolehubah tatasusunan secara berasingan daripada objek tatasusunan:
type[] name;
name = new type[number];
Dan satu lagi perkara yang tidak penting:
Contoh:
Kod | Penjelasan |
---|---|
|
Buat tatasusunan n elemen |
|
Buat tatasusunan dengan 203 elemen |
|
|
0..99
dengan ArrayIndexOfBoundException
, bermakna bahawa indeks berada di luar sempadan tatasusunan.
3. Panjang tatasusunan
Seperti yang anda lihat dalam contoh sebelumnya, anda boleh mencipta pembolehubah tatasusunan dengan sendirinya dan kemudian memberikan nilai (rujukan kepada objek tatasusunan) kepadanya di suatu tempat dalam kod. Anda juga boleh melakukan ini:
Kod | Penjelasan |
---|---|
|
Buat pembolehubah tatasusunan yang jenisnya int[] Jika a pembolehubah itu kurang daripada 10 , kemudian buat tatasusunan 10 elemen. Jika tidak, buat pelbagai 20 elemen |
Dan sekarang apa lagi yang boleh anda lakukan dengan tatasusunan sedemikian? Bagaimana anda tahu berapa banyak unsur di dalamnya?
Untuk membantu dengan ini, tatasusunan mempunyai sifat khas (pembolehubah) bernama length
. Anda boleh mencari panjang tatasusunan menggunakan ungkapan ini:
array.length;
Berikut array
ialah nama pembolehubah tatasusunan dan length
nama harta tatasusunan. Nilai length
harta itu tidak boleh diubah: length
harta itu sendiri boleh diberikan kepada pembolehubah lain, tetapi tiada apa yang boleh diberikan kepadanya (jika anda cuba melakukan ini, program itu tidak akan disusun).
Kita boleh meneruskan dengan contoh sebelumnya seperti ini:
Kod | Penjelasan |
---|---|
|
Buat pembolehubah tatasusunan yang jenisnya int[] Jika a pembolehubah itu kurang daripada 10 , kemudian buat tatasusunan 10 elemen. Jika tidak, buat tatasusunan 20 elemen Gelung ke atas semua elemen tatasusunan: dari 0 ke panjangarray.length - 1 |
4. Ringkasan fakta tentang tatasusunan di Jawa
Mari kita imbas semula perkara yang kita tahu tentang tatasusunan:
Fakta 1. Tatasusunan terdiri daripada banyak sel.
Fakta 2. Anda mengakses sel tertentu dengan menggunakan nombornya (indeks).
Fakta 3. Semua sel adalah daripada jenis yang sama.
Fakta 4. Nilai awal semua sel ialah 0 (jika sel menyimpan nombor), null
(jika sel menyimpan rujukan objek), atau false
(jika sel menyimpan boolean
nilai). Anda akan mengetahui lebih lanjut tentang nilai lalai dalam bab ini .
Fakta 5. String[] list
hanyalah pengisytiharan pembolehubah. Ini tidak mencipta bekas (objek tatasusunan) itu sendiri. Untuk menggunakan pembolehubah, anda perlu membuat tatasusunan (bekas) dahulu dan menetapkannya kepada pembolehubah. Lihat contoh di bawah.
Fakta 6. Apabila kita mencipta objek tatasusunan (bekas), kita mesti menunjukkan berapa besarnya, iaitu berapa banyak sel yang terkandung di dalamnya. Ini dilakukan dengan pernyataan seperti: new TypeName[n]
;
Fakta 7. Panjang tatasusunan boleh didapati menggunakan .length
harta tersebut.
Fakta 8. Selepas mencipta tatasusunan, anda tidak boleh menukar jenis elemennya atau bilangan elemen yang disimpannya.
Kod | Penjelasan |
---|---|
|
s ialah null list adalahnull |
|
Pembolehubah list menyimpan rujukan kepada objek: tatasusunan rentetan yang terdiri daripada 10 elemen. n ialah10 |
|
Sekarang |
|
Pengecualian (ralat program) akan dilemparkan, iaitu program akan ranap. list menyimpan rujukan kepadanull |
|
Pengecualian tatasusunan di luar sempadan (ralat program) akan dihasilkan. Jika sesuatu list menyimpan 10 elemen/sel, maka indeks yang sah ialah: 0 1 2 3 4 5 6 7 8 9 — 10 elemen. |
GO TO FULL VERSION