Razlika između ArrayLista i Vektora u Javi
Sadržaj
Oba ArrayList i Vector su klase pod hijerarhijom Collection Framework. ArrayList i Vector, oboje se koriste za stvaranje dinamičkog niza objekata u kojima matrica može narasti u veličini prema potrebi i po potrebi. Dvije su osnovne razlike koje razlikuju ArrayList i Vector u tome što Vector pripada Legacy klasama koje su kasnije preuređene u svrhu podrške za kolekcijske razrede, dok je ArrayList standardna kolekcionarska klasa. Druga važna razlika je u tome što ArrayList s druge strane nije sinkroniziran; Vektor je sinkroniziran.
Ispitajmo neke druge razlike uz pomoć Usporedne tablice koja je prikazana dolje.
- Usporedni grafikon
- definicija
- Ključne razlike
- sličnosti
- Zaključak
Usporedni grafikon
Osnove za usporedbu | ArrayList | Vektor |
---|---|---|
Osnovni, temeljni | ArrayList klasa nije sinkronizirana. | Vektorska klasa je sinkronizirana. |
Naslijeđena klasa | ArrayList je standardni zbirki klase. | Vector je naslijeđena klasa, redizajnirana da podrži kolekcijsku klasu. |
Deklaracija klase | klasa ArrayList | klasa Vektor |
ponovna dodjela | Ako nije navedeno, ArrayList se povećava za polovinu njegove veličine. | Kada nije određeno, vektor se povećava da udvostruči svoju veličinu. |
Izvođenje | Kako je ArrayList nesinkroniziran, radi brže od Vectora. | Kako se Vector sinkronizira, djeluje sporije od ArrayLista. |
Brojanje / Iterator | ArrayList koristi sučelje Iteratora za prelazak objekata pohranjenih u ArrayList. | Vector koristi nabrajanje kao i sučelje iteratora za pomicanje objekata pohranjenih u Vektorima. |
Definicija ArrayLista
ArrayList pripada popisu standardnih zbirki klase. Klasa ArrayList definirana je unutar java.util paket, proširuje AbstractList klase koja je također standardna klasa kolekcije, a također je implementira Popis, sučelje definirano u Zbirci sučelja. U Javi je standardni niz uvijek fiksne duljine. To znači jednom stvoreno; ne dinamički raste ili se ne smanjuje u veličini. Stoga biste trebali imati prethodno znanje o duljini niza koji koristite. No, ponekad se može dogoditi da se tražena dužina otkriva za vrijeme izvođenja, pa je za rješavanje ovakve situacije java uvela ArrayList.
ArrayList je klasa koja se koristi za dinamičko stvaranje niza koji sadrži reference na objekte. Ovaj bi niz mogao rasti u veličini i kad je potrebno. Deklaracija klase je sljedeća:
klasa ArrayList Ovdje E određuje vrstu objekata koje će niz sadržavati. Stvoreni niz je promjenjive duljine i povećava se i smanjuje u veličini kada se objekti dodaju ili uklone s popisa. ArrayList nije sinkroniziran što znači da na nizu može istovremeno raditi više niti. Na primjer, ako jedna nit dodaje referencu objekta nizu, a druga nit istovremeno uklanja referencu objekta iz istog polja. Stvaranje dinamičkog niza pomoću klase ArrayList: ArrayList U gornjem kôdu to možete vidjeti; Stvorio sam niz objekata tipa niza. Dodao sam neke objekte u niz S1 pomoću metode dodavanja (), a kasnije sam neke objekte izbrisao pomoću metode ukloni (). Možete primijetiti ako ne odredite početnu veličinu matrice, ona će biti duljine '0'. Kao što možete vidjeti kako niz raste i smanjuje se tijekom dodavanja i brisanja elemenata. Vector je Legacy klasa koja je redizajnirana da podrži kolekcijsku klasu u hijerarhiji Collection Framework. Klasa vektora je također definirana u java.util paket, produžen za AbstractList klase i implementirao Popis sučelje. Klasa Vector deklarirana je na sljedeći način: klasa Vektor Ovdje E definira vrstu objekta koji će se pohraniti u niz. Niz koji je stvoren pomoću klase Vector promjenjive je duljine. Uvećava dvostruko veću veličinu ako priraštaj nije određen. Razumijemo stvaranje polja pomoću Vektora. Vektor U gornjem kôdu to možete vidjeti, posebno sam spomenuo vrijednost veličine i prirasta u konstruktoru Vectora, istovremeno izjavljujući niz string-objekata. Stoga možete primijetiti da kako se granica matrice završava, povećava se za vrijednost koja je data konstruktoru tijekom deklaracije. Zaključujem tvrdnjom da je upotreba ArrayLista bolja od upotrebe Vectora jer djeluje brže i bolje.
Definicija vektora
sličnosti:
Zaključak: