Array ja ArrayList

Anonim

Mikä on Array ja ArrayList?

Sekä Array että ArrayList ovat indeksipohjaisia ​​tietorakenteita, joita käytetään usein Java-ohjelmissa. Konseptuaalisesti ArrayList on sisäisesti tukema taulukot, mutta ymmärrys ero näiden kahden on avain tulossa suuri Java-kehittäjä. Se on melko tärkeä askel aluksi, varsinkin aloittelijoille, jotka ovat juuri alkaneet koodausta. Vaikka molempia käytetään tallentamaan Java-elementtejä, jotka voivat olla joko primitiivejä tai esineitä, niillä on kohtuullinen osuus toimivuuden 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 kahta eri näkökulmaa, jotta voit valita toisen.

Array ja Arraylistin ero

  1. resizable

Yksi tärkeimmistä ja havaittavista eroista kahden datarakenteen välillä on se, että Array on luonteeltaan staattinen, mikä tarkoittaa sitä, että se on kiinteä tietotyyppi, kun taas ArrayList on luonteeltaan dynaaminen, joten se on muuttuvan pituinen tietorakenne. Teknisesti, Arran pituutta ei voi muuttaa tai muokata Array-objektin luomisen jälkeen. Se sisältää samankaltaisen tietotyypin peräkkäisiä kokoelmia. Java-taulukot toimivat eri tavoin kuin ne toimivat C / C ++ -ohjelmassa. ArrayList puolestaan ​​voi muuttaa itsensä ja taulukot voivat kasvaa tarpeen mukaan. Koska se on dynaaminen tietorakenne, elementit voidaan lisätä ja poistaa luettelosta.

  1. Generics

Et voi luoda Java-yleisten rajapintojen ryhmiä, joten matriisit ja geneeriset aineet eivät kulje käsi kädessä, jolloin Generic Array -tuotetta ei voida luoda yhdeksi perusedellytykseksi, että taulukot ovat kovaariantteja, kun taas geneeriset aineet ovat invariantteja. Vaikka Array on kiinteäpituinen tietorakenne, se sisältää samaan luokkaan tai primitiiveihin liittyviä objekteja. Joten jos yrität tallentaa muuhun datatyyppiin kuin määritetty luomasi Array-objektin, se yksinkertaisesti heittää "ArrayStoreException". ArrayList puolestaan ​​tukee Genericsia tyyppi- turvallisuuden varmistamiseksi.

  1. primitives

ArrayListissä ei sallita alkeellisia tietotyyppejä, kuten int, double, long ja char. Sen sijaan objekteja ja primitiivejä ei pidetä Java-objekteina. Muodot, toisaalta, voivat pitää primitiivejä ja Java-objekteja, koska se on yksi Java-objektien tehokkaimmista tietorakenteista. Se on yhdistetty tietotyyppi, joka on suunniteltu pitämään objekteja, jotka voivat olla joko samanlaisia ​​tai erilaisia.

  1. Pituus

Array-pituuden saamiseksi koodilla on oltava pääsy pituusominaisuuteen, koska tiedetään, kuinka kauan Array-toiminnot toimivat. Vaikka ArrayList käyttää koko () -menetelmää ArrayListin koon määrittämiseksi, se on melko erilainen kuin Array-pituuden määrittäminen. Koko () -menetelmä -määritelmä määrittää ArrayList-elementtien määrän, joka puolestaan ​​on ArrayListin kapasiteetti.

Esimerkiksi:

julkinen luokka ArrayLengthTest {

julkinen staattinen void main (String [] args) {

ArrayList arrList = uusi ArrayList();

String [] kohteet = {"Yksi", "Kaksi", "Kolme"};

varten (String str: kohteet) {

arrList.add (str);

}

int size = items.size ();

System.out.println (koko);

}

}

  1. täytäntöönpano

Array on natiivi Java-ohjelmointikomponentti, joka luodaan dynaamisesti, ja ne käyttävät operaation operaattoria pitämään elementtejä, kun taas ArrayList käyttää add () attribuuttia elementtien lisäämiseen. ArrayList on Java-kokoelmakokonaisuuden luokka, joka käyttää joukkoa määriteltyjä menetelmiä elementtien käyttämiseen ja muokkaamiseen. ArrayListin kokoa voidaan suurentaa tai pienentää dynaamisesti. Järjestelmän elementit tallennetaan vierekkäiseen muistipaikkaan ja sen koko pysyy staattisena koko ajan.

  1. Esitys

Vaikka molemmat datarakenteet tarjoavat samanlaista suorituskykyä kuin ArrayList on tukena Arrays, yksi on hieman reuna toisensa yli enimmäkseen osalta CPU aika ja muistin käyttöä. Sanotaan esimerkiksi, että jos tiedät taulukon koon, olet todennäköisesti ArrayListin kanssa. Toisaalta array on kuitenkin hieman nopeampi kuin iteroituminen ArrayListin yli.Jos ohjelmaan sisältyy suuri määrä primitiivejä, array toimii merkittävästi paremmin kuin ArrayList sekä ajan että muistin suhteen. Taulukot ovat matalan tason ohjelmointikieliä, joita voidaan käyttää kokoelmien toteutuksessa. Kuitenkin suorituskyky voi vaihdella riippuen suorittamastasi toiminnasta.

Array Vs. ArrayList

ryhmä ArrayList
Array on kiinteä pituinen tietorakenne, jonka pituutta ei voi muokata, kun array-objekti on luotu. ArrayList on luonteeltaan dynaaminen, mikä tarkoittaa, että se voi kasvaa tarpeen mukaan.
Järjestelmän koko pysyy staattisena koko ohjelman ajan. ArrayListin koko voi kasvaa dynaamisesti riippuen kuormasta ja kapasiteetista.
Se käyttää operaation operaattoria tallentamaan elementtejä. Se käyttää lisäys () attribuuttia elementtien lisäämiseen.
Se voi sisältää primitiivejä sekä saman tai erilaisen tietotyypin esineitä. Ensiöitä ei sallita ArrayListissä. Se voi sisältää vain objektityyppejä.
Muodot ja Generics eivät kulje käsi kädessä. Generics on sallittu ArrayListissä.
Muodot voivat olla moniulotteisia. ArrayList on yksiulotteinen.
Se on natiivi ohjelmointiosa, jossa elementit tallennetaan vierekkäisiin muistipaikkoihin. Se on Java-kokoelmakokonaisuuden luokka, jossa esineitä ei koskaan tallenneta vierekkäisiin paikkoihin.
Pituusmuuttujaa käytetään Array pituuden määrittämiseen. Koko () -menetelmää käytetään määrittämään ArrayList-koko.
ArrayListin muistia on vähemmän, kun tallennetaan määritettyjä elementtejä tai esineitä. Säilyttää enemmän muistia kuin Array.
Iterointi taulukon yli on nopeampi kuin iteroituminen ArrayListin yli. ArrayListin välitys on huomattavasti hitaampaa suorituskyvyn suhteen.

Yhteenveto

Vaikka jotkut saattavat ajatella, että ohjelmatyökalujen toteutus voi saada tuloksia nopeammin kuin tekemällä sama ArrayListien kanssa yksinkertaisesta syystä, että matriisit ovat matalan tason tietorakenne, suorituskyky voi vaihdella sen mukaan, mihin suoritukseen olet tekemässä. No, arkin pituus on kiinteä, kun taas ArrayListin kokoa voidaan kasvattaa tai pienentää dynaamisesti, joten ArrayListillä on hieman reuna Array-toiminnon funktiona. Eroista huolimatta he jakavat myös yhtäläisyyksiä. Molemmat ovat Java-pohjaisia ​​Java-tietorakenteita, joiden avulla voit tallentaa esineitä ja ne sallivat sekä nolla-arvot että kaksoiskappaleet. Jos tiedät esineen koon etukäteen, sinun kannattaa mennä sarjaan, ja jos et ole varma koosta, käy ArrayListillä.