Ero taulukon ja ArrayListin välillä

Mikä on Array ja ArrayList?

Sekä Array että ArrayList ovat hakemistopohjaisia ​​tietorakenteita, joita käytetään usein Java-ohjelmissa. Käsitteellisesti ArrayList on sisäisesti tuettu taulukkojen avulla, mutta näiden kahden välisen eron ymmärtäminen on avain suureksi Java-kehittäjäksi. Se on melko perusaskel, joka aloitetaan, etenkin aloittelijoille, jotka ovat juuri alkaneet koodata. Vaikka molempia käytetään tallentamaan Java-elementtejä, jotka voivat olla joko alkukirjoja tai objekteja, niillä on kohtuullinen osuus toiminnallisuuden ja suorituskyvyn eroista. Suurin ero näiden kahden välillä on, että Array on staattinen, kun taas ArrayList on luonteeltaan dynaaminen. Tässä artikkelissa verrataan näitä kahta eri näkökulmasta, jotta voit valita yhden toisen yli.

Ero taulukon ja arraylistin välillä

  1. resizable

Yksi suurimmista ja huomattavista eroista kahden tietorakenteen välillä on, että taulukko on luonteeltaan staattinen, mikä tarkoittaa, että se on kiinteän pituinen tietotyyppi, kun taas ArrayList on luonteeltaan dynaaminen, mikä tarkoittaa, että se on muuttuvan pituinen tietorakenne. Teknisessä mielessä taulukon pituutta ei voida muuttaa tai muuttaa, kun taulukko-objekti on luotu. Se sisältää samantyyppisten elementtien peräkkäisen kokoelman. Java-taulukot toimivat eri tavalla kuin ne toimivat C / C ++: ssa. ArrayList puolestaan ​​voi muuttaa itsensä kokoa ja taulukot voivat kasvaa tarvittaessa. Koska se on dynaaminen tietorakenne, elementit voidaan lisätä ja poistaa luettelosta.

  1. Generics

Et voi luoda Java-ryhmään yleisten rajapintaluokkien ryhmiä, joten taulukot ja geneeriset tuotteet eivät kulje käsi kädessä, joten yleisen taulukon luominen on mahdotonta siitä syystä, että taulukot ovat kovariantteja, kun taas geneeriset tuotteet ovat epävariantteja. Vaikka taulukko on kiinteän pituinen tietorakenne, se sisältää saman luokan objekteja tai tietyn tietotyypin alkupisteitä. Joten jos yrität tallentaa muun tyyppistä kuin määritettyä tietotyyppiä luotaessa Array-objektia, se heittää vain “ArrayStoreException”. ArrayList puolestaan ​​tukee Generics-tekniikkaa tyyppiturvallisuuden varmistamiseksi.

  1. primitives

Primitiiviset tietotyypit, kuten int, double, long ja char, eivät ole sallittuja ArrayListissä. Se pitää pikemminkin esineitä, ja alkukankaita ei pidetä Java-esineinä. Sen sijaan taulukot pystyvät pitämään Java-alukkeita samoin kuin alkioita ja esineitä, koska se on Java-järjestelmän tehokkaimpia tietorakenteita objektien tallentamiseksi. Se on aggregoitu tietotyyppi, joka on suunniteltu pitämään objekteja, jotka voivat olla joko saman tyyppisiä tai erityyppisiä.

  1. Pituus

Jotta taulukon pituus saadaan, koodin on käytettävä pituusattribuuttia, koska täytyy tietää pituus, jotta voidaan suorittaa array -toiminnot. Vaikka ArrayList käyttää size () -menetelmää ArrayList-koon määrittämiseen, se eroaa melkoisesti taulukon pituuden määrittämisestä. Koko () -metodiatribuutti määrää ArrayList-elementtien määrän, mikä puolestaan ​​on ArrayList-kapasiteetti.

Esimerkiksi:

julkinen luokka ArrayLengthTest

julkinen staattinen void main (merkkijono [] args)

ArrayList arrList = uusi ArrayList ();

Merkkijono [] kohteita = “yksi”, “kaksi”, “kolme”;

kohteelle (merkkijono: esineet)

arrList.add (str);

int koko = esineet.koko ();

System.out.println (koko);

  1. Toteutus

Array on Java-ohjelman alkuperäinen ohjelmointikomponentti, joka luodaan dynaamisesti ja ne käyttävät määritysoperaattoria elementtien pitämiseen, kun taas ArrayList käyttää add () -attribuuttia elementtien lisäämiseen. ArrayList on Java-luokan keräyskehyksen luokka, joka käyttää joukko määritettyjä menetelmiä elementtien käyttämiseen ja muokkaamiseen. ArrayList-kokoa voidaan lisätä tai vähentää dynaamisesti. Taulukon elementit tallennetaan vierekkäiseen muistipaikkaan ja sen koko pysyy staattisena koko ajan.

  1. Esitys

Vaikka molemmat tietorakenteet tarjoavat samanlaista suorituskykyä kuin ArrayList tukee Arrays, yhdellä on pieni etu toiseen nähden, enimmäkseen CPU-ajan ja muistin käytön suhteen. Oletetaan, että jos tiedät taulukon koon, olet todennäköisesti mukana ArrayListissä. Iterointi taulukon yli on kuitenkin hiukan nopeampaa kuin iteraatio ArrayListin yli. Jos ohjelmaan sisältyy suuri määrä primitiiviä, taulukko toimii merkittävästi paremmin kuin ArrayList, sekä ajallisesti että muistin suhteen. Taulukot ovat matalan tason ohjelmointikieli, jota voidaan käyttää kokoelmien toteutuksissa. Suorituskyky voi kuitenkin vaihdella suorittamasi operaation mukaan.

Array Vs. ArrayList

ryhmä ArrayList
Taulukko on kiinteän pituinen tietorakenne, jonka pituutta ei voida muuttaa, kun matriisiobjekti luodaan. ArrayList on luonteeltaan dynaaminen, mikä tarkoittaa, että se voi muuttaa kokoaan kasvaakseen tarvittaessa.
Matriisin koko pysyy staattisena koko ohjelman ajan. ArrayList-koko voi kasvaa dynaamisesti kuormasta ja kapasiteetista riippuen.
Se käyttää määritysoperaatiota elementtien tallentamiseen. Se käyttää add () -attribuuttia elementtien lisäämiseen.
Se voi sisältää alkeellisia samoin kuin saman tyyppisiä tai eri tyyppisiä objekteja. Primitiivit eivät ole sallittuja ArrayListissä. Se voi sisältää vain objektityyppejä.
Ryhmät ja geneeriset tuotteet eivät kulje käsi kädessä. Geneeriset tuotteet ovat sallittuja ArrayListissä.
Ryhmät voivat olla moniulotteisia. ArrayList on yksiulotteinen.
Se on alkuperäinen ohjelmointikomponentti, jossa elementit tallennetaan vierekkäisiin muistipaikkoihin. Se on luokka Java-kokoelmien puitteista, jossa esineitä ei koskaan säilytetä vierekkäisissä paikoissa.
Pituusmuuttujaa käytetään taulukon pituuden määrittämiseen. Koko () -menetelmää käytetään ArrayList-koon määrittämiseen.
Vaatii vähemmän muistia kuin ArrayList tiettyjen elementtien tai objektien tallentamiseen. Objektien tallentamiseen tarvitaan enemmän muistia kuin taulukko.
Iterointi taulukon yli on nopeampaa kuin iteraatio ArrayListin yli. Iteration ArrayList: n yli on suorituskyvyn suhteen hitaampaa.

Yhteenveto

Vaikka jotkut saattavat ajatella, että taulukkojen toteuttaminen ohjelmassa voi saada tuloksia nopeammin kuin saman tekeminen ArrayListien kanssa siitä yksinkertaisesta syystä, että taulukot ovat matalan tason tietorakennetta, suorituskyky voi vaihdella suorittamasi toiminnon mukaan. No, taulukon pituus on kiinteä, kun taas ArrayList-kokoa voidaan suurentaa tai pienentää dynaamisesti, joten ArrayList-toiminnolla on pieni reuna taulukkoon nähden. Eroista huolimatta niillä on kuitenkin myös joitain samankaltaisuuksia. Molemmat ovat Java-hakemistopohjaisia ​​tietorakenteita, joiden avulla voit tallentaa objekteja, ja molemmat sallivat nolla-arvot sekä kaksoiskappaleet. No, jos tiedät objektien koon etukäteen, sinun pitäisi mennä taulukon avulla, ja jos et ole varma koosta, siirry ArrayListin kanssa.