Erot taulukon ja ArrayListin välillä

Array ja ArrayList ovat tärkeitä tietorakenteita, joita käytetään tallentamaan useita elementtejä ja käsittelemään niitä. Mutta niiden välillä on keskeisiä eroja. Hyvän ohjelmoijan on oltava tietoinen vertailusta niiden välillä, jotta hän voi tehokkaasti päättää, mitä ja milloin käyttää.

ryhmä

Taulukko on tietorakenne, johon voimme tallentaa tietyn tyyppisiä saman tyyppisiä elementtejä. Esimerkiksi kokonaislukutyyppinen taulukko, merkkijonotyyppinen taulukko jne. Siksi Java-järjestelmän normaali taulukko on staattinen tietorakenne.

ArrayList

ArrayList on dynaaminen tietorakenne, johon kohteita voidaan lisätä ja poistaa luettelosta. Joten jos et ole varma kuinka monta elementtiä matriisissasi on, tämä dynaaminen tietorakenne säästää sinua.

Tässä artikkelissa keskustelemme Array: n ja ArrayList: n eroista Java-versiossa.

Esimerkki ymmärtää sekä Array että ArrayList

Taulukko on tietorakenne, johon voimme tallentaa tietyn kiinteän koon saman tyyppisiä elementtejä.

Koodiesimerkki:

Luodaan ryhmä viidestä int-tyyppisestä elementistä. Me iteroimme niiden läpi käyttämällä silmukkaa

ArrayList on dynaaminen tietorakenne, johon kohteita voidaan lisätä ja poistaa luettelosta. Joten jos et ole varma kuinka monta elementtiä matriisissasi on, tämä dynaaminen tietorakenne säästää sinua.

Koodiesimerkki:

Head to Head -erot Array- ja ArrayList- ohjelmien välillä (Infographics)

Seuraavassa on tärkeimmät erot Arrayn ja ArrayListin välillä:

Keskeiset erot Array- ja ArrayList-sovellusten välillä Java-ohjelmassa

1. Joustavuus

Matriisi on staattinen tietorakenne. Kun olet määrittänyt taulukon koon, et voi muuttaa sen kokoa. Siksi normaali Java-taulukko on staattinen tietorakenne, koska taulukon alkuperäinen koko on kiinteä.

Toisaalta ArrayList on kooltaan joustava. Voit lisätä tai poistaa kohteita luettelosta avuksesi. Kun poistamme kohteita ArrayLististä, määritämme nolla indeksille, jonka arvo poistetaan, ja koko indeksin arvo alenee yhdellä automaattisesti. Samanlainen koskee myös lisäystä.

2. Toteutus

Taulukko on tietorakenne, johon voimme tallentaa tietyn kiinteän koon saman tyyppisiä elementtejä. ArrayList on dynaaminen tietorakenne, johon kohteita voidaan lisätä ja poistaa luettelosta. Oikeastaan ​​ArrayList toteutetaan käyttämällä Java-taulukkoa. Sinun on tuotava java.util.ArrayList -paketti, jotta ArrayList () -menetelmää käytetään ArrayList-objektin luomiseen.

Esimerkki Array-koodinpätkä

Esimerkki ArrayList-koodinpätkä

3. Suorituskyky

Vaikka ArrayList perustuu pohjimmiltaan Arrayan, näemme suorituskykyeroja niiden välillä. Tämä johtuu ArrayList-tallennustyypistä ja toiminnoista. Näemme suorituskykyerot prosessorin ajan ja muistin käytön suhteen. Suoritettavista toimista riippuen Arrayn ja ArrayListin suorituskyky vaihtelee:

ArrayList vaatii enemmän muistia tallennustarkoituksiin verrattuna taulukkoon. Tämä johtuu siitä, että samanlaisten kohteiden tallentaminen vaatii enemmän muistia kuin samanlaisten primitiivisten tyyppimuuttujien tallentaminen.

resize () -operaatio: ArrayList käyttää automaattista koon muuttamista, jolloin luodaan väliaikainen taulukko elementtien kopioimiseksi vanhasta taulukosta uuteen. Tämä hidastaa yleistä suorituskykyä.

get () -operaatio: Hakemistopohjaisissa käyttöoikeuksissa sekä ArrayList- että array-suorituskyky ovat samat, koska tämä vaatii jatkuvaa aikaa.

add () -operaatio: Tässä näemme avaineron, koska uuden elementin lisääminen ArrayListiin vaatii kaksi toimintoa sisäisesti: Kopioi ja koon koko. Lisäys ArrayListissä luo uuden taulukon taustalle ja kopioi elementit vanhasta uuteen.

4. Alkeisyhdisteet

Matriisi voi tallentaa sekä primitiivisiä että objektityyppisiä elementtejä. Toisaalta ArrayList ei voi tallentaa primitiivisiä tyyppejä; se voi tallentaa vain samantyyppisiä objekteja.

Kuinka sitten voimme tallentaa kokonaislukuja ArrayListiin?

Vastaus on JVM: n autoboxing- kyky. Autoboxing muuttaa sisäisesti primitiivisen vastaaviksi objekteiksi.

Esimerkiksi:

Siksi autoboxing suorittaa sisäisesti asioiden alla

5. Tyyppi turvallisuus

Taulukko voi tallentaa vain saman tyyppisiä elementtejä. Jos haluat tallentaa erityyppisiä elementtejä muuhun kuin määriteltyyn taulukkoon, se heittää ArrayStoreException luomalla kyseisen taulukon objektin. Tämä poikkeus heitetään suorituksen aikana, koska taulukko ei siis ole tyyppiturvallinen; taulukkoa varten ei ole käännösajan tarkistusta.

Esimerkiksi:

Toisaalta ArrayList on tyyppiturvallinen, koska se varmistaa geneeristen lääkkeiden tyyppiturvallisuuden. Generics antaa kääntäjälle mahdollisuuden tarkistaa, onko kirjoituksessa virheitä kokoamisen aikana.

6. Arvot toistetaan

ArrayList luo iterator () -menetelmän kokoelman luomiseen. Sitten käyttämällä jonkin aikaa silmukkaa, siirrymme elementit yksitellen ja tulostamme arvot.

Toisaalta voimme käyttää silmukkaa tai kutakin silmukkaa iteroidaksesi taulukon läpi.

7. Pituus

Monissa käyttötapauksissa saatamme tarvita saada koko taulukon koko. Arraylistin tapauksessa tämä laskelma on melko suoraviivainen. Voimme saada pituuden ArrayLististä käyttämällä size () -menetelmää.

Toisaalta jokaisessa taulukko-objektissa on pituusmuuttuja, joka palauttaa taulukon pituuden.

Esimerkiksi:

8. Elementtien lisääminen

Lisäys tai lisäys on mahdollista ArrayListissä, koska se on dynaaminen tietorakenne. Voimme käyttää add () -menetelmää elementtien lisäämiseen ArrayListiin sen luomisen jälkeen.

Toisaalta taulukon koko on kiinteä. Voimme kuitenkin lisätä elementtejä taulukkoon toimeksiannon perusteella. Emme voi lisätä dynaamisesti uusia elementtejä taulukon koon ulkopuolelle.

Esimerkiksi:

9. Mitat

ArrayList on yksiulotteinen. Sen sijaan taulukko voi olla moniulotteinen.

Esimerkiksi:

Array ja ArrayList - Vertailutaulukko

Keskustelemme Arrayn ja ArrayListin parhaan vertailun kanssa

Vertailun perusteetryhmäArrayList
JoustavuusTaulukko on staattinen tietorakenneArrayList on dynaaminen tietorakenne
primitivesvoi tallentaa sekä primitiivisiä että objektityyppisiä elementtejävoi tallentaa vain samantyyppisiä objekteja.
Tyyppi TurvallisuusTaulukko voi tallentaa vain saman tyyppisiä elementtejä. Muutoin se heittää ArrayStoreException-toiminnon luotaessa kyseisen taulukon objektin.ArrayList on tyyppiturvallinen, koska se varmistaa geneeristen lääkkeiden tyyppiturvallisuuden.
Arvoja toistetaankäytä silmukkaa tai kutakin silmukkaa iteraation saavuttamiseksi.Käytä iterator () -menetelmää kokoelman luomiseen
Elementtien lisääminenosaa lisätä elementtejä taulukkoon osoittamalla.Lisää elementit ArrayListiin käyttämällä add () -menetelmää

Ulottuvuusmoniulotteinensingle-ulotteinen

Johtopäätös-taulukko vs. ArrayList

Tämä kaikki koskee Java-järjestelmän taulukon ja ArrayListin tärkeätä eroa. Tärkein tärkeä ero, joka sinun on pidettävä mielessä, on, että taulukko on staattinen, kun taas ArrayList on luonteeltaan dynaaminen. Ensisijaisesti tämän eron perusteella sinun on käytettävä taulukkoa, jos tunnistat edessä olevat mitat, jos olet epävarma, käytä vain ArrayList-ohjelmaa.

Suositellut artikkelit

Tämä on opas ryhmään Array vs ArrayList. Tässä keskustellaan Array vs ArrayList-avaineroista infografioiden, esimerkkien ja vertailutaulukon kanssa. Voit myös käydä läpi muiden ehdotettujen artikkeleidemme saadaksesi lisätietoja -

  1. Java Vector vs ArrayList
  2. C # taulukko vs. luettelo
  3. C vs. Java
  4. Matriisin edut
  5. Iterator Java
  6. Python-silmukoiden edut esimerkki