Razlika med Arrays in Arraylists

Arrays vs Arraylists

Nizi so najpogosteje uporabljena struktura podatkov za shranjevanje zbirke elementov. Večina programskih jezikov ponuja metode za enostavno deklariranje nizov in dostop do elementov v matrikah. Arraylist lahko vidimo kot dinamičen niz, ki lahko narašča v velikosti. Zaradi tega razloga programerju ni treba poznati velikosti arraylista, ko jo določa.

Kaj so matriki?

Na sliki 1 je del kode, ki se običajno uporablja za razglasitev in dodelitev vrednosti matriki. Slika 2 prikazuje, kako bi v pomnilniku izgledal niz.

int vrednosti [5];

vrednosti [0] = 100;

vrednosti [1] = 101;

vrednosti [2] = 102;

vrednosti [3] = 103;

vrednosti [4] = 104;

Slika 1: Koda za razglasitev in dodelitev vrednosti matriki


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

Slika 2: Array, shranjen v pomnilniku

Zgornja koda določa matriko, ki lahko shrani 5 celih števil in do njih dostopajo z indeksi 0 do 4. Ena pomembna lastnost matrike je ta, da je celotna matrika dodeljena kot en blok pomnilnika in vsak element dobi svoj prostor v polju . Ko je niz definiran, je njegova velikost določena. Če v času prevajanja niste prepričani o velikosti matrike, bi morali definirati dovolj velik niz, da bo na varni strani. Toda večinoma bomo uporabili manjše število elementov, kot smo jih dodelili. Tako je zapravila precejšnjo količino spomina. Po drugi strani pa, če "dovolj velik niz" dejansko ni dovolj velik, bi se program zrušil.

Kaj so Arraylists?

Arraylist lahko vidimo kot dinamičen niz, ki lahko narašča v velikosti. Zato so arrayisti idealni za uporabo v razmerah, ko ob deklaraciji ne veste velikosti elementov. Na Javi lahko arraylisti hranijo samo predmete, ne smejo imeti neposredno primitivnih vrst (primitivne vrste lahko postavite znotraj predmeta ali uporabite razrede ovojev primitivnih vrst). Na splošno so arraylists na voljo z načini za izvajanje vstavljanja, brisanja in iskanja. Časovna zapletenost dostopa do elementa je o (1), medtem ko ima vstavljanje in brisanje časovno kompleksnost o (n). Na Javi je mogoče, da se arilisti premikajo z uporabo zank predvajanja, iteratorjev ali preprosto z uporabo indeksov.

Kakšna je razlika med Arrays in Arraylists

Čeprav so matriki in matriki podobni v smislu, da se oba uporabljata za shranjevanje zbirk elementov, se razlikujeta v tem, kako sta definirana. Ko je določena matrika, mora biti podana velikost matrike, vendar lahko določite matriko, ne da bi vedeli dejansko velikost. Elemente lahko dodate arraylistu, potem ko je definiran, in to ni mogoče z nizi. Toda na Javi arraylists ne morejo imeti primitivnih vrst, vendar pa lahko matrike uporabljajo primitivne vrste. Če pa potrebujete strukturo podatkov, ki lahko spreminja svojo velikost, bi bil arraylist najboljša izbira.