Erinevus JavaScripti ArrayListi ja vektori vahel
Sisu
ArrayList ja Vector on mõlemad klassid, mis kuuluvad kogumisraamistiku hierarhia alla. ArrayList ja Vector on mõlemad objektide dünaamilise massiivi loomiseks, kus massiivi suurus võib vajaduse korral kasvada. ArrayListit ja Vectorit eristavad kaks peamist erinevust: Vector kuulub Legacy klassidesse, mis hiljem kujundati ümber, et toetada kollektsiooniklasse, samas kui ArrayList on tavaline kollektsiooniklass. Teine oluline erinevus on see, et ArrayList pole seevastu sünkroonitud; Vektor on sünkroniseeritud.
Uurime allpool näidatud võrdlusdiagrammi abil mõnda muud erinevust.
- Võrdlusdiagramm
- Definitsioon
- Peamised erinevused
- Sarnasused
- Järeldus
Võrdlusdiagramm
Võrdluse alus | ArrayList | Vektor |
---|---|---|
Põhiline | ArrayListi klass pole sünkroonitud. | Vektorklass on sünkroniseeritud. |
Pärandiklass | ArrayList on tavaline Collection'i klass. | Vector on pärandklass, mis on ümber kujundatud, et toetada kollektsiooniklassi. |
Klassideklaratsioon | klass ArrayList | klassi vektor |
Ümberjaotamine | Kui pole täpsustatud, suurendatakse ArrayList selle suurusest poole võrra. | Kui seda pole täpsustatud, suurendatakse vektorit selle suuruse kahekordistamiseks. |
Etendus | Kuna ArrayList pole sünkroniseeritud, töötab see kiiremini kui Vector. | Kuna Vector on sünkroonitud, töötab see aeglasemalt kui ArrayList. |
Loendamine / iteraator | ArrayList kasutab Iteraatori liidest ArrayListi salvestatud objektide sirvimiseks. | Vektor kasutab vektorites talletatud objektide sirvimiseks nii loendamist kui ka iteraatori liidest. |
Määratlus ArrayList
ArrayList kuulub tavapäraste kollektsiooniklasside loendisse. Klass ArrayList on määratletud siseruumides java.util pakett, see laiendab AbstractList klass, mis on ühtlasi tavaline kollektsiooniklass ja mida ka rakendatakse Loend, kogumiliidestes määratletud liides. Java-keeles on tavaline massiiv alati kindla pikkusega. See tähendab kord loodud; see ei kasva dünaamiliselt ega kahane. Seega peaksid teil olema eelteadmised kasutatava massiivi pikkuse kohta. Kuid mõnikord võib juhtuda, et vajaminev pikkus kuvatakse käitustõmmise ajal, nii et jaavi tutvustas ArrayList sellist olukorda.
Massiivi nimekirja kasutatakse massiivi dünaamiliseks loomiseks, mis sisaldab viiteid objektidele. Selle massiivi suurus võib vajaduse korral kasvada. Klassideklaratsioon on järgmine:
klass ArrayList Siin määrab E objektide tüübi, mida massiiv hoiab. Loodud massiiv on erineva pikkusega ning objektide lisamisel või loendist eemaldamisel selle suurus suureneb ja väheneb. ArrayList pole sünkroonitud, mis tähendab, et massiivis saab korraga töötada rohkem kui üks teema. Näiteks kui üks lõim lisab massiivi objekti viite ja teine niit eemaldab objekti massiivi viited samal massiivil. Dünaamilise massiivi loomine klassi ArrayList abil: ArrayList Ülaltoodud koodis näete seda; Lõin massiivi stringi tüüpi objekte. Lisasin mõned objektid massiivi S1, kasutades meetodit add () ja hiljem kustutasin mõned objektid, kasutades meetodit remove (). Võite jälgida, kui te ei täpsusta massiivi algset suurust, selle pikkus oleks „0”. Nagu näete, elementide lisamisel ja kustutamisel massiiv kasvab ja kahaneb. Vector on pärandiklass, mis on ümber kujundatud, et toetada kollektsiooniklassi kogumisraamistiku hierarhias. Vektorklass on määratletud ka java.util pakett, laiendatud AbstractList klassi ja rakendas Loend liides. Vektoriklass kuulutatakse järgmiseks: klassi vektor Siin määratleb E massiivi salvestatava objekti tüübi. Klassi Vector abil loodud massiiv on erineva pikkusega. Kui juurdekasvu pole täpsustatud, suureneb see kahekordselt. Saame aru massiivi loomisest vektori abil. Vektor Ülaltoodud koodis näete, et mainisin stringi objektide massiivi kuulutamisel eriti vektori konstruktoris vastavalt suuruse ja juurdekasvu väärtust. Seega võite täheldada, et massiivi limiidi lõppedes suureneb see väärtuse võrra, mis antakse konstruktorile deklareerimise ajal. Lõpetuseks ütlen, et ArrayListi kasutamine on parem kui vektori kasutamine, kuna see toimib kiiremini ja paremini.
Vektori määratlus
Sarnasused:
Järeldus: