Ero ArrayListin ja Vektorin välillä Java-ohjelmassa
Sisältö
ArrayList ja Vector ovat molemmat luokkakokoelman hierarkiassa. ArrayList- ja Vector-elementtejä käytetään kumpikin luomaan dynaaminen joukko objekteja, joissa taulukon koko voi kasvaa tarvittaessa. ArrayList ja Vector erottavat kaksi peruseroa: Vector kuuluu Legacy-luokkiin, jotka suunniteltiin myöhemmin uudelleen tukemaan keräysluokkia, kun taas ArrayList on vakiokokoelmaluokka. Toinen tärkeä ero on, että ArrayList ei ole synkronoitu; Vektori on synkronoitu.
Tutkitaan joitain muita eroja alla olevan vertailutaulukon avulla.
- Vertailutaulukko
- Määritelmä
- Keskeiset erot
- yhtäläisyyksiä
- johtopäätös
Vertailutaulukko
Vertailun perusteet | ArrayList | Vektori |
---|---|---|
perustiedot | ArrayList-luokkaa ei ole synkronoitu. | Vektoriluokka on synkronoitu. |
Vanha luokka | ArrayList on standardi Collection-luokka. | Vector on vanha luokka, joka on suunniteltu uudelleen tukemaan keräysluokkaa. |
Luokan ilmoitus | luokka ArrayList | luokan vektori |
uudelleenkohdentaminen | Kun ei määritetä, ArrayList-arvoa kasvatetaan puoleen sen koosta. | Kun vektoria ei määritetä, sitä suurennetaan kaksinkertaiseksi. |
Esitys | Koska ArrayList ei ole synkronoitu, se toimii nopeammin kuin Vector. | Koska Vector on synkronoitu, se toimii hitaammin kuin ArrayList. |
Enumeration / Iterator | ArrayList käyttää Iterator-käyttöliittymää selatakseen ArrayListiin tallennettuja objekteja. | Vector käyttää luettelua ja Iterator-käyttöliittymää kuljettamaan Vektoreihin tallennettuja objekteja. |
Määritelmä ArrayList
ArrayList kuuluu vakiokokoelmaluetteloon. ArrayList-luokka on määritelty java.util paketti, se laajentaa AbstractList luokka, joka on myös vakiokokoelmaluokka, ja se myös toteuttaa Lista, keräysrajapinnoissa määritetty rajapinta. Java-järjestelmässä vakiojärjestelmä on aina kiinteä. Tämä tarkoittaa kerran luotua; se ei kasva dynaamisesti tai pienenee kooltaan. Joten sinulla pitäisi olla etukäteen tieto käyttämäsi taulukon pituudesta. Mutta joskus voi käydä niin, että vaadittu pituus paljastuu suorituksen aikana, jotta tällaisen tilanteen käsittelemiseksi java esitteli ArrayListin.
ArrayList on luokka, jota käytetään ryhmän dynaamiseen luomiseen, joka sisältää viitteet objekteihin. Tämän ryhmän koko voi kasvaa tarvittaessa. Luokka-ilmoitus on seuraava:
luokka ArrayList Tässä E määrittelee objektien tyypin, joita taulukko pitää hallussaan. Luodun taulukon pituus on vaihteleva, ja sen koko kasvaa ja pienenee, kun esineitä lisätään tai poistetaan luettelosta. ArrayList: ää ei ole synkronoitu, mikä tarkoittaa, että useampi kuin yksi säie voi toimia taulukossa samanaikaisesti. Esimerkiksi, jos yksi säie lisää objektiohjeita taulukkoon ja toinen säie poistaa kohdeviittauksen samasta taulukosta samaan aikaan. Dynaamisen taulukon luominen ArrayList-luokan avulla: ArrayList Yllä olevassa koodissa voit nähdä sen; Loin joukon merkkijonotyyppisiä objekteja. Lisäsin joitain objekteja taulukkoon S1 käyttämällä add () -menetelmää ja poistin myöhemmin joitain objekteja käyttämällä Poista () -menetelmää. Voit tarkkailla, jos et määrittele taulukon alkuperäistä kokoa, sen pituus on 0. Kuten näet, taulukon koko kasvaa ja kutistuu, kun lisäät ja poistat elementtejä. Vector on Legacy-luokka, joka suunnitellaan uudelleen tukemaan keräysluokkaa Collection Framework -hierarkiassa. Vektoriluokka on myös määritelty java.util paketti, laajennettu AbstractList luokan ja toteuttaa Lista käyttöliittymä. Vektoriluokka julistetaan seuraavasti: luokan vektori Tässä E määrittelee taulukkoon tallennettavan objektityypin. Vector-luokan avulla luotu taulukko on pituudeltaan vaihteleva. Se kasvaa kaksinkertaiseksi, jos lisäystä ei määritetä. Ymmärretään taulukon luominen Vektorilla. Vektori Yllä olevassa koodissa voit nähdä, että mainitsin erityisesti vektorin rakentajan koon ja lisäysarvon vastaavasti ilmoittaen merkkijonoobjektien ryhmän. Siksi voit huomata, että kun taulukon raja päättyy, se kasvaa rakentajalle ilmoituksen aikana annettavalla arvolla. Lopuksi sanon, että ArrayList on parempi käyttää kuin Vector, koska se toimii nopeammin ja paremmin.Määritelmä vektori
yhtäläisyyksiä:
johtopäätös: