Erinevused Array vs ArrayList vahel

Array ja ArrayList on olulised andmestruktuurid, mida kasutatakse paljude elementide talletamiseks ja nende töötlemiseks. Kuid nende vahel on peamised erinevused. Hea programmeerija peab olema teadlik nendevahelistest võrdlustest, et ta saaks tõhusalt otsustada, mida ja miks kasutada.

Massiiv

Massiiv on andmestruktuur, kuhu saame salvestada sarnase tüüpi etteantud suurusega elemente. Näiteks täisarv tüüpi massiiv, stringi tüüpi massiiv jne. Seetõttu on Java tavaline massiiv staatiline andmestruktuur.

ArrayList

ArrayList on dünaamiline andmestruktuur, kus üksusi saab loendist lisada ja sealt eemaldada. Nii et kui te pole kindel, kui palju elemente teie massiivis on, säästab see dünaamiline andmestruktuur teid.

Selles artiklis käsitleme JavaScripti Array ja ArrayListi erinevusi.

Näide nii massiivi kui ka massiivi listi mõistmiseks

Massiiv on andmestruktuur, kuhu saame salvestada sarnase tüübi kindla fikseeritud suurusega elemente.

Koodinäide:

Loome massiivi viiest int-tüüpi elemendist. Me korratakse neid silmuse abil

ArrayList on dünaamiline andmestruktuur, kus üksusi saab loendist lisada ja sealt eemaldada. Nii et kui te pole kindel, kui palju elemente teie massiivis on, säästab see dünaamiline andmestruktuur teid.

Koodinäide:

Erinevused massiivi ja ArrayListi vahel (infograafika)

Allpool on toodud peamised erinevused Array ja ArrayListi vahel:

Massiivi ja JavaScripti ArrayListi peamised erinevused

1. Paindlikkus

Massiiv on staatiline andmestruktuur. Kui olete massiivi suuruse määratlenud, ei saa te selle suurust muuta. Seetõttu on Java tavaline massiiv staatiline andmestruktuur, kuna massiivi algsuurus on fikseeritud.

Teisest küljest on ArrayList paindliku suurusega. Üksusi saate loendist lisada või kustutada vastavalt oma vajadustele. ArrayListist üksuste eemaldamisel omistame indeksile, mille väärtus eemaldatakse, nulli ja kogu indeksi väärtus alaneb automaatselt ühe võrra. Sama kehtib ka lisamise kohta.

2. Rakendamine

Massiiv on andmestruktuur, kuhu saame salvestada sarnase tüübi kindlaksmääratud suurusega elemente. ArrayList on dünaamiline andmestruktuur, kus üksusi saab loendist lisada ja sealt eemaldada. Tegelikult rakendatakse ArrayList Java massiivi. ArrayList () meetodi kasutamiseks objekti ArrayList loomiseks peate importima paketi java.util.ArrayList.

Massiivi koodilõigu näidis

Näitekoodilõige ArrayList

3. Sooritus

Ehkki ArrayList põhineb põhimõtteliselt Array'l, näeme nende vahel jõudluse erinevusi. Selle põhjuseks on ArrayListi salvestusviis ja funktsionaalsus. Näeme jõudluse erinevusi protsessori aja ja mälu kasutamise osas. Sõltuvalt sooritatavatest toimingutest varieeruvad programmi Array ja ArrayList jõudlus:

ArrayList nõuab massiiviga võrreldes rohkem mälu. Selle põhjuseks on asjaolu, et sarnaste objektide salvestamiseks on vaja rohkem mälu kui sarnaste primitiivsete tüüpi muutujate salvestamiseks.

operatsiooni suuruse muutmine (): ArrayList kasutab automaatset suuruse muutmist, kus luuakse ajutine massiiv elementide kopeerimiseks vanast massiivist uude massiivi. See aeglustab üldist jõudlust.

operatsioon get (): indeksipõhise juurdepääsu korral on nii ArrayList kui ka massiiv sama jõudlusega, kuna see nõuab pidevat aega.

toiming add (): siin näeme peamist erinevust, kuna uue elemendi lisamine ArrayListi nõuab sisemiselt kahte toimingut: kopeerimine ja suuruse muutmine. ArrayListi lisamine loob taustal uue massiivi ja kopeerib elemendid vanast uude massiivi.

4. Primitiivid

Massiiv võib talletada nii primitiivseid kui ka objektitüüpe elemente. Teisest küljest ei saa ArrayList säilitada primitiivseid tüüpe; see võib salvestada ainult sama tüüpi objekte.

Kuidas saaksime siis ArrayList salvestada täisarvu?

Vastus on JVMi automaatkasti võimalus. Autoboxing teisendab sisemiselt primitiivsed oma samaväärseteks objektideks.

Näiteks:

Seega toimib autoboxing sisemiselt allpool asju

5. Tüüp ohutus

Massiiv võib talletada ainult sarnast tüüpi elemente. Kui soovite salvestada erinevat tüüpi massiivi elemente erinevates massiivides kui need, siis viskab see massiivi objekti loomise ajal ArrayStoreException. See erand visatakse käituse ajal, kuna massiiv ei ole järelikult tüübi jaoks ohutu; massiivi jaoks pole kompileerimise ajakontrolli.

Näiteks:

Teisest küljest on ArrayList tüübi suhtes ohutu, kuna see tagab geneerikute poolt tüübi ohutuse. Generics võimaldab kompilaatoril kontrollida, kas kompileerimise ajal on tüübis ebakõla.

6. Väärtuste kordamine

ArrayList kasutab kogu loomiseks iteraatori () meetodit. Seejärel kasutame mõnda aega silmuse abil elemente ükshaaval ja trükime väärtused.

Teisest küljest saame kasutada silmuse või iga silmuse jaoks massiivi iteratsiooni.

7. Pikkus

Paljudel kasutusjuhtudel peame võib-olla saama kogu massiivi suuruse. Arraylisti puhul on see arvutus üsna sirgjooneline. ArrayListi pikkuse saame suuruse () meetodit kasutades.

Teisest küljest on igal massiiviobjektil pikkuse muutuja, mis tagastab massiivi pikkuse.

Näiteks:

8. Elementide lisamine

Lisamine või sisestamine on ArrayListis võimalik, kuna see on dünaamiline andmestruktuur. Elementide lisamiseks ArrayListisse pärast selle loomist saame kasutada meetodit add ().

Teisest küljest on massiivi suurus fikseeritud. Elemente saab massiivi sisestada ka loovutamise teel. Me ei saa dünaamiliselt lisada uusi elemente, mis ületavad massiivi suuruse.

Näiteks:

9. Mõõt

ArrayList on ühemõõtmeline. Arvestades, et massiiv võib olla mitmemõõtmeline.

Näiteks:

Array ja ArrayList - võrdlustabel

Arutleme Array ja ArrayListi ülemise võrdluse üle

Võrdluse alusMassiivArrayList
PaindlikkusMassiiv on staatiline andmestruktuurArrayList on dünaamiline andmestruktuur
Primitiividsaab salvestada nii primitiivseid kui ka objektitüüpi elementesaab salvestada ainult sama tüüpi objekte.
Tüüp ohutusMassiiv võib talletada ainult sarnast tüüpi elemente. Vastasel juhul viskab see massiivi objekti loomise ajal ArrayStoreExceptioni.ArrayList on tüübikindel, kuna see tagab tüübi ohutuse geneerikute poolt.
Väärtuste jäljendamineiteratsiooni saavutamiseks kasutage silmuse jaoks või iga silmuse jaoks.Kasutab kogu loomiseks iteraatori () meetodit
Elementide lisaminesaab elemente massiivi sisestada määramise teel.elementide lisamiseks ArrayListisse kasuta meetodit add ()

Mõõtmedmitmemõõtmelineühemõõtmeline

Kokkuvõte-massiiv vs ArrayList

See kõik puudutab massiivi ja ArrayListi olulist vahet Java-s. Kõige olulisem erinevus, mida peate meeles pidama, on see, et massiiv on staatiline, samas kui ArrayList on oma olemuselt dünaamiline. Põhinedes peamiselt sellel eristusel, peate kasutama massiivi, kui tunnete ees olevad mõõtmed ära, kui pole kindel, siis kasutage lihtsalt ArrayList.

Soovitatavad artiklid

See on juhend Array vs ArrayList. Siin käsitleme Array vs ArrayList peamisi erinevusi infograafikute, näidete ja võrdlustabeliga. Lisateavet leiate ka meie muudest soovitatud artiklitest -

  1. Java Vector vs ArrayList
  2. C # massiiv vs nimekiri
  3. C vs Java
  4. Massiivi eelised
  5. Iteraator Java-s
  6. Python Loops eelised | Näide

Kategooria: