Razlike med Array proti ArrayList

Array in ArrayList sta pomembni strukturi podatkov, ki se uporabljata za shranjevanje številnih elementov in njihovo obdelavo. Vendar obstajajo ključne razlike med njimi. Dober programer se mora zavedati primerjave med njimi, da se bo lahko učinkovito odločil, kaj uporabiti, kdaj in zakaj.

Niz

Niz je podatkovna struktura, v katero lahko shranimo elemente dane velikosti podobnega tipa. Na primer matrika vrste celih števil, niz vrst niz itd. Zato je običajni niz v Javi statična struktura podatkov.

ArrayList

ArrayList je dinamična struktura podatkov, kjer lahko elemente dodate in odstranite s seznama. Če niste prepričani, koliko elementov bo v vašem nizu, vas bo ta dinamična podatkovna struktura prihranila.

V tem članku bomo razpravljali o razlikah med Array in ArrayList v javi.

Primer za razumevanje Array in ArrayList

Niz je podatkovna struktura, v katero lahko shranimo elemente dane fiksne velikosti podobnega tipa.

Primer kode:

Ustvarimo niz petih elementov tipa int. Ponovili jih bomo s pomočjo zanke

ArrayList je dinamična struktura podatkov, kjer lahko elemente dodate in odstranite s seznama. Če niste prepričani, koliko elementov bo v vašem nizu, vas bo ta dinamična podatkovna struktura prihranila.

Primer kode:

Razlike med Array in ArrayList (Infographics)

Spodaj so zgornje razlike med Array in ArrayList:

Ključne razlike med Array in ArrayList na Javi

1. Prožnost

Niz je statična struktura podatkov. Ko določite velikost matrike, ne morete spremeniti vrednosti njene velikosti. Zato je običajna matrika na Javi statična podatkovna struktura, ker je začetna velikost matrike fiksna.

Po drugi strani je ArrayList velikosti prilagodljiv. Predmete lahko na seznam dodate ali odstranite s seznama. Medtem ko odstranjujemo elemente iz ArrayList, indeksu dodelimo ničelno vrednost, katere vrednost se odstrani, celotna vrednost indeksa pa se samodejno zniža. Podobno velja tudi za dodajanje.

2. Izvajanje

Niz je podatkovna struktura, v katero lahko shranimo elemente dane fiksne velikosti podobnega tipa. ArrayList je dinamična struktura podatkov, kjer lahko elemente dodate in odstranite s seznama. Pravzaprav je ArrayList izveden s pomočjo matrike na Javi. Za ustvarjanje predmeta ArrayList morate uvesti paket java.util.ArrayList, če želite uporabiti metodo ArrayList ().

Primer izrezka kode Array

Primer kode Snippet ArrayList

3. Zmogljivost

Čeprav ArrayList v osnovi temelji na Array, opazimo razlike v uspešnosti med njimi. To je posledica vrste shranjevanja in funkcionalnosti ArrayList. Razlike v uspešnosti glede na čas CPU in porabo pomnilnika. Učinkovitost Array in ArrayList bo odvisna od operacij, ki jih izvajate:

ArrayList potrebuje več pomnilnika za shranjevanje v primerjavi z matriko. To je zato, ker za shranjevanje podobnih predmetov potrebujete več pomnilnika kot shranjevanje podobnih spremenljivk primitivnega tipa.

operacija resize (): ArrayList uporablja samodejno spreminjanje velikosti, kjer se ustvari začasna matrika za kopiranje elementov iz starega v novo matriko. To upočasni splošno delovanje.

operacija get (): Za dostop do indeksa imata tako ArrayList kot matrika enake zmogljivosti, saj to zahteva stalen čas.

operacija add (): Tu vidimo ključno razliko, saj dodajanje novega elementa v ArrayList zahteva notranje delovanje: Kopiranje in spreminjanje velikosti. Dodatek v ArrayList ustvari nov niz v ozadju in kopira elemente iz starega v nov niz.

4. Primitivi

Polje lahko shrani tako primitivne kot predmetne vrste elementov. Po drugi strani pa ArrayList ne more shraniti primitivnih vrst; lahko shrani samo predmete iste vrste.

Kako lahko potem shranimo celoštevilčne vrednosti v ArrayList?

Odgovor je sposobnost samodejnega zabijanja JVM. Autobox bo notranje pretvoril primitivne v njegove enakovredne predmete.

Na primer:

Torej, avtobox v notranjosti izvajajo spodnje stvari

5. Vrsta Varnost

Niz lahko shrani samo elemente podobne vrste. Če želite shraniti različne vrste elementov v matriko, ki ni navedena, bo vrgel ArrayStoreException med ustvarjanjem predmeta te matrike. Ta izjema bo vržena v času izvajanja, saj matrika torej ni varna za tip; za matriko ni preverjanja časa sestavljanja.

Na primer:

Po drugi strani je ArrayList varno za tip, saj s pomočjo generike zagotavlja varnost tipa. Generics omogoča prevajalniku, da med prevajanjem preveri, ali obstaja kakšno neskladje v vrsti.

6. Ponavljanje vrednosti

ArrayList za ustvarjanje zbirke uporablja metodo iterator (). Nato bomo z uporabo zanke za čas prečkali elemente, enega za drugim in natisnili vrednosti.

Po drugi strani pa lahko uporabimo za zanko ali za vsako zanko iteracijo skozi niz.

7. Dolžina

V mnogih primerih uporabe bomo morda morali dobiti velikost celotnega niza. V primeru Arraylista je ta izračun precej neposreden. Dolžino ArrayLista lahko dobimo z metodo size ().

Po drugi strani ima vsak element matrike spremenljivko dolžine, ki vrne dolžino matrike.

Na primer:

8. Dodajanje elementov

Dodajanje ali vstavljanje je možno v ArrayList, saj gre za dinamično strukturo podatkov. Za dodajanje elementov v ArrayList po njegovem ustvarjanju lahko uporabimo metodo add ().

Po drugi strani je velikost matrike fiksna. Lahko pa elemente v polju vstavimo po dodelitvi. Ne moremo dinamično dodati novih elementov, ki presegajo velikost matrike.

Na primer:

9. Dimenzija

ArrayList je enodimenzionalen. Medtem ko je matrika lahko večdimenzionalna.

Na primer:

Array in ArrayList - Primerjalna tabela

Pogovorimo se o zgornji primerjavi med Array in ArrayList

Osnova za primerjavoNizArrayList
PrilagodljivostNiz je statična struktura podatkovArrayList je dinamična struktura podatkov
Primitivilahko shrani tako primitivne kot predmetne vrste elementovlahko shranjujejo samo predmete iste vrste.
Vrsta VarnostNiz lahko shrani samo elemente podobne vrste. V nasprotnem primeru bo med ustvarjanjem predmeta te matrike vrgel ArrayStoreException.ArrayList je varen za tip, saj s pomočjo generičnih izdelkov zagotavlja varnost tipa.
Ponavljanje vrednostiza doseganje iteracije uporabite za zanko ali za vsako zanko.Za ustvarjanje zbirke uporablja iterator () metodo
Dodajanje elementovlahko elemente v polju vstavi po dodelitvi.za dodajanje elementov v ArrayList uporabite metodo add ()

Dimenzijavečdimenzionalnienodimenzionalno

Zaključek-Array vs ArrayList

To vse zadeva pomembno razlikovanje med matriko in ArrayListom na Javi. Najpomembnejše razliko, ki ga morate upoštevati, je, da je matrika statična, medtem ko je ArrayList dinamičen. Zlasti na tem razlikovanju morate uporabiti matriko, če prepoznate prihodnje dimenzije, če niste prepričani, preprosto uporabite ArrayList.

Priporočeni članki

To je vodnik za Array proti ArrayListu. Tukaj razpravljamo o ključnih razlikah Array vs ArrayList z infografiko, primeri in primerjalno tabelo. Če želite izvedeti več, lahko preberete tudi druge naše predlagane članke -

  1. Java Vector vs ArrayList
  2. C # Array proti seznamu
  3. C proti Javi
  4. Prednosti Array
  5. Iterator na Javi
  6. Prednosti Python zank | Primer