1. Carane ArrayList
wis kabentuk
ArrayList
yaiku kelas Jawa sing paling umum digunakake kanggo nyimpen unsur. Dadi kepiye ArrayList
kerjane lan kenapa kabeh wong seneng banget?
Struktur punika ArrayList
prasaja lan akale. Saben ArrayList
obyek ngemot rong kolom:
- Array saka unsur
- Variabel
size
, sing nyimpen jumlah unsur ing dhaptar
Secara internal, ArrayList
obyek ngemot array sing paling biasa! Nanging ora mung kuwi. Ana uga variabel ukuran , sing nyimpen dawa dhaptar. Iki cara kerjane:
Kaping pisanan, dawa array ing dhaptar yaiku 10. Lan size
variabel kasebut 0.
Yen sampeyan nambahake unsur menyang dhaptar, bakal disimpen ing sel kaping 0 saka array, lan size
bakal nambah dadi 1.
Yen sampeyan nambah siji unsur liyane, bakal disimpen ing sel 1, lan size
maneh bakal nambah 1 lan dadi padha karo loro.
Yen sampeyan nambahake unsur liyane nalika ora ana spasi liyane ing array, banjur ing ngisor iki kelakon ing add()
cara:
- A array anyar digawe sing siji lan setengah kaping dawa saka sadurunge
- Kabeh unsur array lawas disalin menyang array anyar.
- Ing
ArrayList
obyek kasebut, referensi menyang array anyar ngganti referensi menyang sing lawas . - Unsur liwati disimpen ing sel kaping 10 saka array anyar.
- Variabel ukuran mundhak 1 lan saiki bakal padha karo 11
Ana kedadeyan sing padha nalika nambah (nyisipake) unsur ing tengah dhaptar. Unsur sing ana dipindhah 1 menyang sisih tengen, lan unsur sing dilewati ditulis menyang sel sing mentas dibebasake saka array.
Saiki kita bakal nimbang skenario paling dhasar sing kalebu dhaptar:
2. Nambahake unsur menyangArrayList
Ayo goleki apa sing kedadeyan ing dhaptar nalika unsur ditambahake. Sanalika sawise obyek ArrayList digawe, kita duwe memori kaya iki:
Kita duwe ArrayList
obyek sing ngemot rong kolom (rong variabel): wadhah (array data
) lan jumlah unsur sing disimpen ( size
). Variabel data
nyimpen referensi kanggo wadhah (array) sing bisa nyimpen 10 unsur.
Yen kita mutusake kanggo nambah nomer 5 menyang larik, kita entuk gambar ing ngisor iki:
Array saiki nyimpen unsur 5, lan size == 1
.
Yen wong nelpon size()
cara ing ArrayList
obyek kita saiki, Nilai bali bakal nomer unsur disimpen ing dhaftar: 1. Jumlah unsur ing dhaftar ora padha karo kapasitas panyimpenan saka Uploaded.
Kapasitas panyimpenan saiki utawa array dhewe ora bakal bisa diakses (katon) ing njaba ArrayList
obyek kasebut. Iki lan mesthi bakal dadi ArrayList
data internal.
Ayo ditambahake 7 nomer liyane ing dhaptar: 10, 20, 30, 40, 50, 60, 70.
Saiki memori bakal katon kaya iki:
Yen sampeyan nelpon size()
cara saiki, bakal ngasilake nomer 8, yaiku nomer unsur anyar ing dhaptar. Nilai iki ora ana hubungane karo ukuran array internal.
Ana siji oversimplification ing gambar iki.
Kelas kasebut ArrayList
ora bisa nyimpen jinis primitif, mula nggunakake Integer
jinis kasebut tinimbang int
. Wadhah kasebut ora langsung nyimpen nilai {5, 10, 20, 30, 40, 50, 60, 70}, nanging referensi kanggo Integer
obyek. Kabeh sel kosong ing toko wadhah null
.
3. Nambah dawa dhaftar
Ayo goleki apa sing kedadeyan ing dhaptar nalika ora ana sel kosong ing array internal.
Upaminipun kita duwe dhaptar 10 unsur:
Kita mutusake kanggo nambah nomer 100 kasebut. Iki kedadeyan ing add()
metode:
Langkah 1 - Nggawe larik anyar:
Langkah 2 - Nyalin kabeh unsur saka larik lawas menyang sing anyar:
Langkah 3 - Ganti array lawas (ganti referensi menyang ArrayList
array internal obyek):
Langkah 4 - Tambah nomer anyar, sing wis kerja keras kanggo ngrampungake:
GO TO FULL VERSION