Razlika med ArrayList in Vector v Javi
Vsebina
ArrayList in Vector sta razreda v hierarhiji Collection Framework. ArrayList in Vector se uporabljata za ustvarjanje dinamičnega niza predmetov, kjer lahko matrika narašča v velikosti, kadar in kadar je to potrebno. ArrayList in Vector določata dve osnovni razliki, da Vector spada v starejše razrede, ki so jih pozneje prenovili v podporo kolekcijskim razredom, medtem ko je ArrayList standardni zbirki. Druga pomembna razlika je, da ArrayList na drugi strani ni sinhroniziran; Vektor je sinhroniziran.
Preučimo še nekaj razlik s pomočjo spodnje tabele primerjave.
- Primerjalna tabela
- Opredelitev
- Ključne razlike
- Podobnosti
- Zaključek
Primerjalna tabela
Osnove za primerjavo | ArrayList | Vektor |
---|---|---|
Osnovni | Razred ArrayList ni Sinhroniziran. | Vektorski razred je sinhroniziran. |
Legacy class | ArrayList je standardni kolekcijski razred. | Vector je zapuščina, ki je bila preoblikovana v podporo kolekcijskemu razredu. |
Deklaracija razreda | razred ArrayList | razred Vektor |
Prerazporeditev | Če ni določeno, se ArrayList poveča za polovico njegove velikosti. | Če ni določeno, se vektor poveča za podvojitev njegove velikosti. |
Izvedba | Ker je ArrayList nesinhroniziran, deluje hitreje kot Vector. | Ko je Vector sinhroniziran, deluje počasneje kot ArrayList. |
Poštevanje / Iterator | ArrayList uporablja vmesnik Iterator za premikanje predmetov, shranjenih v ArrayList. | Vektor uporablja naštevanje in vmesnik Iterator za premikanje predmetov, shranjenih v Vektorjih. |
Opredelitev ArrayList
ArrayList spada na seznam standardnih zbirk. Razred ArrayList je opredeljen znotraj java.util paket, podaljša Izvleček razreda, ki je tudi standardni zbirni razred in ga tudi izvajajo Seznam, vmesnik, opredeljen v zbirkah vmesnikov. Pri Javi je standardni niz vedno fiksne dolžine. To pomeni, da je enkrat ustvarjeno; dinamično ne raste in se ne zmanjša. Tako bi morali imeti predhodno znanje o dolžini matrike, ki jo uporabljate. Toda včasih se lahko zgodi, da se zahtevana dolžina razkrije med izvajanjem, zato je za obvladovanje tovrstnih situacij java uvedla ArrayList.
ArrayList je razred, ki se uporablja za dinamično ustvarjanje matrike, ki vsebuje reference na predmete. Ta niz se lahko poveča in po potrebi poveča. Deklaracija razreda je naslednja:
razred ArrayList Tukaj E določa vrsto predmetov, ki jih bo shranila matrika. Ustvarjena matrika je spremenljive dolžine in se povečuje in zmanjšuje, ko se predmeti dodajo ali odstranijo s seznama. ArrayList ni sinhroniziran, kar pomeni, da lahko na matriki hkrati deluje več kot ena nit. Na primer, če ena nit doda matrično referenco predmeta, druga nit pa hkrati odstrani referenco predmeta iz istega polja. Ustvarjanje dinamičnega niza z razredom ArrayList: ArrayList V zgornji kodi lahko to vidite; Ustvaril sem niz predmetov vrste niza. V matriko S1 sem dodal nekaj predmetov z uporabo metode dodajanja (), pozneje pa nekatere predmete izbrisal z uporabo metode odstranitve (). Če ne določite začetne velikosti matrike, lahko opazite, da bo dolžina '0'. Kot lahko vidite, kako matrika narašča in se zmanjšuje, ko dodajate in brišete elemente. Vector je razred Legacy, ki je prenovljen za podporo kolekcijskega razreda v hierarhiji Collection Framework. Vektorski razred je določen tudi v java.util paket, podaljšan za Izvleček razreda in jo izvaja Seznam vmesnik. Razred Vector je razglašen na naslednji način: razred Vektor Tukaj E določa vrsto predmeta, ki bo shranjen v matriki. Niz, ustvarjen z uporabo razreda Vector, je spremenljive dolžine. Dvojna velikost se poveča, če prirast ni določen. Razumejmo ustvarjanje matrike z uporabo Vektorja. Vektor V zgornji kodi lahko vidite, da sem še posebej omenil vrednost velikosti in prirasta v konstruktorju Vector, medtem ko sem izjavljal niz strukturnih predmetov. Tako lahko opazite, da ko se omejitev matrike konča, se povečuje za vrednost, ki je bila podana konstruktorju med deklaracijo. Zaključim s tem, da je uporaba ArrayList boljša od uporabe Vektorja, saj deluje hitreje in bolje.
Opredelitev vektorja
Podobnosti:
Zaključek: