Hi! Pelajaran dina iki
Bakal luwih angel amarga dina iki kita bakal nliti
Pisanan, ayo ndeleng kepiye nambah unsur anyar. Urutan bisnis pisanan yaiku mriksa apa array internal duwe ruang sing cukup ing array internal lan manawa ana unsur liyane sing cocog. Yen ana spasi, banjur unsur anyar ditambahake ing mburi dhaftar. Nalika kita ngomong "nganti pungkasan", kita ora ateges posisi pungkasan ing array (sing bakal aneh). We tegese posisi sawise unsur saiki pungkasan. Indeks kasebut bakal dadi
Iku cukup cetha. Apa mengkono yen kita masang ing tengah, IE antarane unsur liyane?
Banjur unsur anyar kita dipasang ing sawijining panggonan. Unsur sadurunge (bugatti) wis disalin saka ing kono menyang posisi anyar.
Saiki ayo goleki carane proses iki kedadeyan yen ora ana papan kanggo nglebokake unsur anyar menyang array.
Mesthi, ana mriksa dhisik kanggo ndeleng apa ana cukup ruang. Yen ora ana cukup ruang, banjur array anyar digawe ing
Larik lawas bakal dibusak dening kolektor uwuh, lan mung anyar, Uploaded ditambahi bakal tetep. Saiki ana ruang kanggo unsur anyar. Kita nglebokake ing posisi 3, sing dikuwasani. Saiki prosedur akrab diwiwiti. Kabeh unsur, diwiwiti kanthi indeks 3, dipindhah siji posisi menyang sisih tengen, lan unsur anyar ditambahake kanthi tenang.
Lan sisipan wis rampung! Lan kita wis rampung karo selipan. Saiki ayo ngomong babagan mbusak item . Sampeyan bakal ngelingi yen kita ngalami masalah nalika nggarap array: mbusak unsur ndadekake "bolongan" ing array.karo saben aman, lan kita kudu nulis kode dhewe saben wektu kanggo nindakake shift iki. ArrayList ngetutake prinsip sing padha, nanging wis ngetrapake mekanisme iki.
Iki carane katon:
Lan ing pungkasan kita njaluk apa kita arep:
Unsur
Nalika program mlaku, kita mbusak 77 unsur, supaya mung 11 tetep:
Apa sampeyan wis guessed apa masalahe? Sampeyan entuk, panggunaan memori sing ora efisien! Kita mung nggunakake 11 posisi kene, nanging kita wis diparengake memori kanggo 88 unsur. Iku 8 kaping luwih saka kita perlu! Ing kasus iki, kita bisa ngoptimalake panggunaan memori kanthi salah sawijining
Saiki kita mung nyedhiyakake memori sing dibutuhake! :)
ArrayList
bakal luwih gampang lan luwih angel tinimbang pelajaran sadurunge.

ArrayList
lan nyinaoni apa sing kedadeyan sajrone macem-macem operasi. Ing sisih liya, pelajaran iki meh ora ana kode. Iku biasane gambar lan panjelasan. Inggih, ayo kang pindhah :) Kaya sing wis ngerti, ArrayList
wis Uploaded biasa nang, kang tumindak minangka nyimpen data. Umume kasus, kita ora nemtokake ukuran dhaptar sing pas. Nanging array internal kudu sawetara ukuran! Lan mengkono iku. Ukuran standar yaiku 10 .
public static void main(String[] args) {
ArrayList<Car> cars = new ArrayList<>();
}

cars.size()
. Daftar kita saiki kosong ( cars.size() == 0
). Mulane, unsur anyar bakal ditambahake ing posisi 0.
ArrayList<Car> cars = new ArrayList<>();
Car ferrari = new Car("Ferrari 360 Spider");
cars.add(ferrari);

public static void main(String[] args) {
ArrayList<Car> cars = new ArrayList<>();
Car ferrari = new Car("Ferrari 360 Spider");
Car bugatti = new Car("Bugatti Veyron");
Car lambo = new Car("Lamborghini Diablo");
Car ford = new Car("Ford Modneo");
cars.add(ferrari);
cars.add(bugatti);
cars.add(lambo);
cars.add(1, ford);// add ford to cell 1, which is already occupied
}
Maneh, pisanan ana mriksa apa ana cukup spasi ing Uploaded. Yen ana papan sing cukup, unsur kasebut digeser nengen , diwiwiti kanthi posisi ing ngendi kita nglebokake unsur anyar. Kita nglebokake ing posisi 1. Ing tembung liyane, unsur saka posisi 3 disalin menyang posisi 4, unsur 2 kanggo posisi 3, lan unsur 1 kanggo posisi 2. 


ArrayList
sing ukuran ukuran array lawas kaping 1,5 plus 1 Ing kasus kita, ukuran Uploaded anyar bakal 16. Kabeh unsur saiki bakal disalin menyang ana langsung. 




lambo
wis dibusak. Kene kita mbusak unsur saka tengah. Cetha, mbusak unsur saka mburi dhaftar luwih cepet, amarga unsur mung dibusak tanpa perlu kanggo ngganti kabeh liyane. Ayo dadi pirembagan maneh kanggo wayahe bab dimensi saka Uploaded internal lan carane iku disusun ing memori. Ngembangake array mbutuhake sawetara sumber daya. Mulane, aja nggaweArrayList
kanthi ukuran standar yen sampeyan yakin bakal duwe paling ora 100 unsur. Array internal kudu ditambahi kaping 6 nalika sampeyan nglebokake unsur kaping 100, lan kabeh unsur kudu diganti saben wektu.
- saka 10 unsur nganti 16
- saka 16 unsur nganti 25
- saka 25 kanggo 38
- saka 38 nganti 58
- 58 nganti 88
- saka 88 nganti 133 (yaiku ukuran array lawas kaping 1,5 plus 1)
ArrayList<Car> cars = new ArrayList<>(100);
Saiki memori kanggo array 100 unsur bakal diparengake bebarengan, nggawe array luwih efisien (ora perlu ditambahi). Strategi iki uga duwe sisih flip. Nalika mbusak obyek saka ArrayList
, ukuran array internal ora suda kanthi otomatis. Upaminipun kita duwe ArrayList
karo Uploaded lengkap internal 88 unsur: 

ArrayList
metode khusus kelas:trimToSize()
. Cara iki "trims" dawa array internal mudhun kanggo jumlah unsur saiki disimpen ing. 
GO TO FULL VERSION