Atšķirība Starp Masīvu Sarakstu Un Vektoru

Atšķirība Starp Masīvu Sarakstu Un Vektoru
Atšķirība Starp Masīvu Sarakstu Un Vektoru

Video: Atšķirība Starp Masīvu Sarakstu Un Vektoru

Video: Atšķirība Starp Masīvu Sarakstu Un Vektoru
Video: Vektoru ģeometriskā starpība un reizinājums ar skaitli 2024, Decembris
Anonim

Masīvu saraksts pret vektoru

Masīvu sarakstu var uzskatīt par dinamisku masīvu, kura izmērs var pieaugt. Šī iemesla dēļ programmētājam nav jāzina masīvu saraksta lielums, kad viņš to definē. Vektoru var uzskatīt arī par masīvu, kura izmērs var palielināties. Vektorus var viegli piešķirt un izmantot, ja nepieciešamais krātuves lielums nav zināms līdz izpildlaika beigām.

Kas ir masīvu saraksts?

Masīvu sarakstu var uzskatīt par dinamisku masīvu, kura izmērs var pieaugt. Tāpēc masīvu saraksti ir ideāli piemēroti lietošanai situācijās, kad jūs nezināt deklarēšanas laikā nepieciešamo elementu lielumu. Java masīva saraksti var turēt tikai objektus, tie nevar tieši turēt primitīvos veidus (jūs varat ievietot primitīvos tipus objektā vai izmantot primitīvo tipu iesaiņošanas klases). Masīvu sarakstos parasti tiek ievietotas ievietošanas, dzēšanas un meklēšanas metodes. Laika sarežģītība piekļuvei elementam ir o (1), bet ievietošanai un dzēšanai laika sarežģītība ir o (n). Java masīvu sarakstus var šķērsot, izmantojot foreach cilpas, iteratorus vai vienkārši izmantojot indeksus. Programmā Java masīvu saraksti tika ieviesti no 1.2 versijas, un tā ir daļa no Java Collections Framework.

Kas ir vektors?

Vektors ir arī masīvs, kura izmērs var pieaugt. Vektorus var viegli piešķirt un izmantot, ja nepieciešamais krātuves lielums nav zināms līdz izpildlaika beigām. Vektori var turēt tikai objektus un primitīvus tipus. Vektori ir sinhronizēti, tāpēc tos var droši izmantot daudzvītņu vidēs. Vektoriem tiek nodrošinātas metodes objektu pievienošanai, objektu dzēšanai un objektu meklēšanai. Līdzīgi masīvu sarakstam Java, vektorus var šķērsot, izmantojot foreach cilpas, iteratorus vai vienkārši izmantojot indeksus. Runājot par Java, vektori ir iekļauti kopš pirmās Java versijas.

Kāda ir atšķirība starp masīvu sarakstu un vektoru?

Lai gan gan masīvu saraksti, gan vektori ir ļoti līdzīgi dinamiskiem masīviem, kuru izmērs var pieaugt, tiem ir dažas būtiskas atšķirības. Galvenā atšķirība starp masīvu sarakstiem un vektoriem ir tā, ka vektori ir sinhronizēti, savukārt masīvu saraksti nav sinhronizēti. Tāpēc masīvu sarakstu izmantošana vairāku pavedienu vidēs nebūs piemērota, savukārt vektorus var droši izmantot daudzu pavedienu vidēs (jo tie ir droši ar diegu). Bet sinhronizācija vektoros izraisītu veiktspējas samazināšanos. Tāpēc nebūtu laba ideja izmantot vektorus vienā vītņotā vidē. Iekšēji gan masīvu saraksti, gan vektori izmanto blokus objektu turēšanai. Kad pašreizējā telpa nav pietiekama, vektori dubultos iekšējā masīva lielumu, savukārt masīvu saraksti palielina iekšējā masīva lielumu par 50%. Bet, izmantojot gan masīvu sarakstus, gan vektorus, dodot piemērotu sākotnējo jaudu, var izvairīties no nevajadzīgas iekšējā masīva lieluma maiņas. Situācijā, kad ir zināms datu pieauguma ātrums, piemērotāka būtu vektoru izmantošana, jo varētu definēt vektoru pieaugošo vērtību.

Ieteicams: