Razlika med Arraylist in Vector

Razlika med Arraylist in Vector
Razlika med Arraylist in Vector

Video: Razlika med Arraylist in Vector

Video: Razlika med Arraylist in Vector
Video: BlitzWolf BW-IS22 - Сигнализация, wi-fi + GSM, Tuya Smart, интеграция и управление в Home Assistant 2024, Julij
Anonim

Arraylist vs Vector

Arraylist je mogoče videti kot dinamično polje, ki lahko raste v velikosti. Zaradi tega razloga programerju ni treba poznati velikosti arraylist-a, ko ga definira. Vektor lahko vidimo tudi kot niz, ki lahko raste v velikosti. Vektorje je mogoče preprosto dodeliti in uporabiti, ko zahtevana velikost pomnilnika ni znana do časa izvajanja.

Kaj je Arraylist?

Arraylist je mogoče videti kot dinamično polje, ki lahko raste v velikosti. Zato so matrični seznami idealni za uporabo v situaciji, ko ne poznate velikosti zahtevanih elementov v času deklaracije. V Javi lahko matrični seznami hranijo samo objekte, ne morejo pa neposredno hraniti primitivnih tipov (lahko postavite primitivne tipe v objekt ali uporabite ovojne razrede primitivnih tipov). Na splošno so matrični seznami opremljeni z metodami za vstavljanje, brisanje in iskanje. Časovna zahtevnost dostopa do elementa je o(1), vstavljanje in brisanje pa ima časovno zahtevnost o(n). V Javi je mogoče sezname matrik prečkati z uporabo zank foreach, iteratorjev ali preprosto z uporabo indeksov. V Javi so bili arraylists uvedeni od različice 1.2 in so del Java Collections Framework.

Kaj je vektor?

Vektor je tudi niz, ki se lahko poveča. Vektorje je mogoče preprosto dodeliti in uporabiti, ko zahtevana velikost pomnilnika ni znana do časa izvajanja. Vektorji lahko vsebujejo samo objekte in ne morejo hraniti primitivnih tipov. Vektorji so sinhronizirani, zato jih je mogoče varno uporabljati v večnitnih okoljih. Vektorji so opremljeni z metodami za dodajanje predmetov, brisanje predmetov in iskanje predmetov. Podobno kot arraylist v Javi je mogoče vektorje prečkati z uporabo zank foreach, iteratorjev ali preprosto z uporabo indeksov. Ko gre za Javo, so vektorji vključeni že od prve različice Jave.

Kakšna je razlika med Arraylist in Vector?

Čeprav so seznami matrik in vektorji zelo podobni dinamičnim nizom, ki se lahko povečajo, imajo nekaj pomembnih razlik. Glavna razlika med matričnimi seznami in vektorji je, da so vektorji sinhronizirani, medtem ko matrični seznami niso sinhronizirani. Zato uporaba matričnih seznamov v večnitnih okoljih ne bo primerna, vektorje pa je mogoče varno uporabljati v večnitnih okoljih (ker so varni za niti). Toda sinhronizacija v vektorjih bi povzročila zmanjšanje zmogljivosti. Zato ne bi bilo dobro uporabljati vektorjev v okolju z eno nitjo. Interno tako seznami matrik kot vektorji uporabljajo matrike za shranjevanje predmetov. Ko trenutni prostor ni dovolj, bodo vektorji podvojili velikost svoje notranje matrike, medtem ko bodo seznami matrik povečali velikost svoje notranje matrike za 50 %. Ko pa uporabljate sezname matrik in vektorje, se lahko z ustrezno začetno zmogljivostjo izognete nepotrebnemu spreminjanju velikosti notranje matrike. V primeru, da je hitrost rasti podatkov znana, bi bila uporaba vektorjev primernejša, saj bi lahko definirali inkrementalno vrednost vektorjev.

Priporočena: