Razlika Između Arraylista I Vektora

Razlika Između Arraylista I Vektora
Razlika Između Arraylista I Vektora

Video: Razlika Između Arraylista I Vektora

Video: Razlika Između Arraylista I Vektora
Video: Продвинутая Java: Динамический массив (ArrayList) - Как устроен? 2024, Svibanj
Anonim

Arraylist vs Vector

Arraylist se može promatrati kao dinamički niz koji može rasti u veličini. Iz tog razloga programer ne mora znati veličinu arraylista kad ga definira. Vektor se također može vidjeti kao niz koji može rasti u veličini. Vektori se mogu lako dodijeliti i mogu se koristiti kada potrebna veličina spremišta nije poznata do vremena izvođenja.

Što je Arraylist?

Arraylist se može promatrati kao dinamički niz koji može rasti u veličini. Stoga su arraylisti idealni za upotrebu u situaciji u kojoj ne znate veličinu elemenata potrebnih u trenutku deklaracije. U Javi arraylisti mogu sadržavati samo objekte, ne mogu izravno držati primitivne tipove (primitivne tipove možete staviti unutar objekta ili koristiti klase omota primitivnih tipova). Općenito se arraylistima nude metode za izvođenje umetanja, brisanja i pretraživanja. Vremenska složenost pristupa elementu je o (1), dok umetanje i brisanje ima vremensku složenost o (n). U Javi se arrailistima može prelaziti pomoću foreach petlji, iteratora ili jednostavno pomoću indeksa. U Javi su arraylisti uvedeni od verzije 1.2 i ona je dio Okvira Java Collections Framework.

Što je vektor?

Vektor je također niz koji može rasti u veličini. Vektori se mogu lako dodijeliti i mogu se koristiti kada potrebna veličina spremišta nije poznata do vremena izvođenja. Vektori također mogu držati samo predmete i ne mogu sadržavati primitivne tipove. Vektori su sinkronizirani, stoga se mogu sigurno koristiti u višenitnim okruženjima. Vektori imaju metode dodavanja objekata, brisanja objekata i objekata pretraživanja. Slično arraylistu u javi, vektorima se može prelaziti pomoću foreach petlji, iteratora ili jednostavno pomoću indeksa. Što se tiče Jave, vektori su uključeni od prve verzije Jave.

Koja je razlika između Arraylist i Vector?

Iako su i arrailisti i vektori vrlo slični dinamičkim nizovima koji mogu rasti u veličini, oni imaju neke važne razlike. Glavna razlika između arrailista i vektora je u tome što su vektori sinkronizirani, dok su arraylisti nesinkronizirani. Stoga uporaba arraylista u višenitnim okruženjima neće biti prikladna, dok se vektori mogu sigurno koristiti u višenitnim okruženjima (jer su zaštićeni nitima). Ali sinkronizacija u vektorima uzrokovala bi smanjenje performansi. Stoga ne bi bila dobra ideja koristiti vektore u jednom navojnom okruženju. Interno i arrailisti i vektori koriste nizove za držanje predmeta. Kada trenutni prostor nije dovoljan, vektori će udvostručiti veličinu njegova unutarnjeg niza, dok arrailisti povećavaju veličinu njegova unutarnjeg niza za 50%. Ali kada se koriste i arrailisti i vektori, davanjem odgovarajućeg početnog kapaciteta, može se izbjeći nepotrebno mijenjanje veličine unutarnjeg niza. U situaciji kada je poznata brzina rasta podataka, upotreba vektora bila bi prikladnija jer bi se mogla definirati inkrementalna vrijednost vektora.

Preporučeno: