Masyvo ir masyvo sąrašų skirtumas

Masyvo ir masyvo sąrašų skirtumas
Masyvo ir masyvo sąrašų skirtumas

Video: Masyvo ir masyvo sąrašų skirtumas

Video: Masyvo ir masyvo sąrašų skirtumas
Video: ЯЖЕМАТЬ ИЗ США ПОЛУЧАЕТ ПО ЗАСЛУГАМ. ЯЖЕМАТЬ ИСТОРИИ РЕДДИТ 2024, Lapkritis
Anonim

Arrays vs Arraylists

Masyvai yra dažniausiai naudojama duomenų struktūra elementų rinkiniui saugoti. Dauguma programavimo kalbų pateikia metodus, kaip lengvai deklaruoti masyvus ir pasiekti masyvo elementus. Masyvo sąrašas gali būti vertinamas kaip dinaminis masyvas, kurio dydis gali padidėti. Dėl šios priežasties programuotojui nereikia žinoti masyvo sąrašo dydžio, kai jį apibrėžia.

Kas yra masyvai?

Pavaizduota 1 paveiksle, yra kodo dalis, paprastai naudojama masyvo reikšmėms deklaruoti ir priskirti. 2 paveiksle pavaizduota, kaip masyvas atrodytų atmintyje.

int vertės[5];

values[0]=100;

values[1]=101;

values[2]=102;

values[3]=103;

values[4]=104;

1 pav. Kodas, skirtas deklaruoti ir priskirti vertes masyvei

100 101 102 103 104
Indeksas: 0 1 2 3 4

2 pav. Atmintyje saugomas masyvas

Aukščiau pateiktas kodas apibrėžia masyvą, kuriame gali būti saugomi 5 sveikieji skaičiai ir jie pasiekiami naudojant indeksus nuo 0 iki 4. Viena svarbi masyvo savybė yra ta, kad visas masyvas yra paskirstomas kaip vienas atminties blokas ir kiekvienas elementas gauna savo savo erdvę masyve. Kai masyvas yra apibrėžtas, jo dydis yra fiksuotas. Taigi, jei nesate tikri dėl masyvo dydžio kompiliavimo metu, turėtumėte apibrėžti pakankamai didelį masyvą, kad būtumėte saugioje pusėje. Tačiau dažniausiai mes iš tikrųjų ketiname naudoti mažiau elementų, nei skyrėme. Taigi iš tikrųjų eikvojama nemažai atminties. Kita vertus, jei „pakankamai didelis masyvas“iš tikrųjų nėra pakankamai didelis, programa sugenda.

Kas yra masyvo sąrašai?

Masyvo sąrašas gali būti vertinamas kaip dinaminis masyvas, kurio dydis gali padidėti. Todėl masyvo sąrašai idealiai tinka naudoti tais atvejais, kai deklaravimo metu nežinote reikalingų elementų dydžio. Java programoje masyvo sąrašai gali turėti tik objektus, jie negali turėti primityvių tipų tiesiogiai (primityvius tipus galite įdėti į objektą arba naudoti primityvių tipų įvyniojimo klases). Paprastai masyvo sąrašams pateikiami įterpimo, ištrynimo ir paieškos metodai. Prieigos prie elemento laiko sudėtingumas yra o (1), o įterpimo ir ištrynimo laiko sudėtingumas yra o (n). Java programoje masyvo sąrašus galima naršyti naudojant foreach kilpas, iteratorius arba tiesiog indeksus.

Kuo skiriasi masyvai ir masyvo sąrašai

Nors masyvai ir masyvo sąrašai yra panašūs ta prasme, kad jie abu naudojami elementų rinkiniams saugoti, jie skiriasi tuo, kaip jie yra apibrėžti. Masyvo dydis turi būti nurodytas, kai apibrėžiamas masyvas, tačiau galite apibrėžti masyvo sąrašą nežinodami tikrojo dydžio. Galite įtraukti elementus į masyvų sąrašą, kai jis yra apibrėžtas, o tai neįmanoma naudojant masyvus. Tačiau Java programoje masyvo sąrašai negali turėti primityvių tipų, tačiau masyvai gali būti naudojami primityviems tipams laikyti. Bet jei jums reikia duomenų struktūros, kurios dydis gali keistis, masyvo sąrašas būtų geriausias pasirinkimas.

Rekomenduojamas: