Razlike između Array i ArrayList

Array i ArrayList su važne strukture podataka koje se koriste za spremanje velikog broja elemenata i njihovo obrađivanje. Ali postoje ključne razlike među njima. Dobar programer mora biti svjestan usporedbe kako bi mogao učinkovito odlučiti što će se koristiti kada i zašto.

red

Niz je struktura podataka u koju možemo pohraniti elemente određene veličine sličnog tipa. Na primjer, niz s cijelim brojevima, nizovi nizova itd. Prema tome, uobičajena matrica u Javi je statička struktura podataka.

ArrayList

ArrayList je dinamična struktura podataka, gdje se stavke mogu dodavati i uklanjati s popisa. Dakle, ako niste sigurni koliko će se elemenata nalaziti u vašem nizu, ova dinamična struktura podataka uštedjet će vas.

U ovom ćemo članku raspravljati o razlikama između Array i ArrayList u Javi.

Primjer za razumijevanje i Array i ArrayList

Niz je podatkovna struktura u koju možemo pohraniti elemente određene fiksne veličine sličnog tipa.

Primjer koda:

Napravimo niz od pet elemenata tipa int. Ponovit ćemo ih putem pomoću petlje

ArrayList je dinamična struktura podataka, gdje se stavke mogu dodavati i uklanjati s popisa. Dakle, ako niste sigurni koliko će se elemenata nalaziti u vašem nizu, ova dinamična struktura podataka uštedjet će vas.

Primjer koda:

Međusobne razlike između Array i ArrayList (Infographics)

Niže su navedene razlike između Array i ArrayList:

Ključne razlike između Array i ArrayList u Javi

1. Fleksibilnost

Niz je statična struktura podataka. Jednom kada ste odredili veličinu matrice, ne možete promijeniti vrijednost njegove veličine. Stoga je normalni niz u Javi statična struktura podataka, jer je početna veličina polja fiksna.

S druge strane, ArrayList je fleksibilan u veličini. Možete dodati ili ukloniti stavke s popisa prema vašim pogodnostima. Dok uklanjamo stavke iz ArrayLista, indeksu dodijeljujemo nulu čija se vrijednost uklanja, a cjelokupna vrijednost indeksa automatski se smanjuje za jedan. Slično vrijedi i za dodavanje.

2. Provedba

Niz je struktura podataka u koju možemo pohraniti elemente određene fiksne veličine sličnog tipa. ArrayList je dinamična struktura podataka, gdje se stavke mogu dodavati i uklanjati s popisa. Zapravo, ArrayList se implementira koristeći niz u Javi. Morate uvesti paket java.util.ArrayList da biste koristili metodu ArrayList () za stvaranje ArrayList objekta.

Primjer isječka koda Array

Primjer koda Snippet of ArrayList

3. Performanse

Iako se ArrayList u osnovi temelji na Arrayu, vidimo razlike u performansama među njima. To je zbog vrste pohrane i funkcionalnosti ArrayLista. Vidimo razlike u performansama u pogledu vremena CPU-a i iskorištenosti memorije. Ovisno o operacijama koje izvodite, izvedba Array i ArrayList varirat će:

ArrayList zahtijeva više memorije za pohranu u odnosu na niz. To je zato što za pohranu sličnih objekata treba više memorije nego za pohranjivanje sličnih varijabli primitivnog tipa.

operacija resize (): ArrayList koristi automatsku veličinu, gdje se stvara privremeni niz za kopiranje elemenata iz starog u novi niz. Ovo usporava cjelokupni učinak.

operacija get (): Za pristup temeljen na indeksu, i ArrayList i array imaju iste performanse, jer to zahtijeva stalno vrijeme.

operacija add (): Ovdje vidimo ključnu razliku jer dodavanje novog elementa u ArrayList zahtijeva interno dvije operacije: Kopiraj i promijeni veličinu. Dodavanje u ArrayList stvara novi niz u pozadini i kopira elemente sa starog u novi niz.

4. Primitivi

Niz može pohraniti primitivne i objektne vrste elemenata. S druge strane, ArrayList ne može pohraniti primitivne tipove; može pohraniti samo predmete iste vrste.

Kako onda možemo pohraniti cjelobrojne vrijednosti u ArrayList?

Odgovor je sposobnost automatskog boksa JVM-a. Autoboks interno pretvara primitivne u njegove ekvivalentne objekte.

Na primjer:

Dakle, automatsko spremanje automobila interno izvodi ispod stvari

5. Vrsta Sigurnost

Niz može pohraniti samo elemente sličnog tipa. Ako želite pohraniti različite vrste elemenata u niz koji nije naveden, on će izbaciti ArrayStoreException dok kreira objekt tog polja. Ova će se iznimka izbaciti za vrijeme izvođenja, jer niz stoga nije siguran za tip; ne postoji provjera vremena sastavljanja za niz.

Na primjer:

S druge strane, ArrayList je siguran za tip, jer generički osigurava sigurnost tipa. Generic omogućava prevoditelju da provjeri ima li nepodudarnosti u tipu tijekom kompilacije.

6. Umetanje vrijednosti

ArrayList koristi metodu iterator () za stvaranje kolekcije. Zatim ćemo pomoću petlje zaobilaziti elemente jedan po jedan i ispisati vrijednosti.

S druge strane, za petlju ili za svaku petlju možemo je ponavljati kroz niz.

7. Duljina

U većini slučajeva uporabe možda ćemo trebati dobiti veličinu čitavog niza. U slučaju Arraylista, ovaj je izračun prilično jasan. Dužinu ArrayLista možemo dobiti pomoću metode size ().

S druge strane, svaki objekt polja ima varijablu duljine, koja vraća duljinu polja.

Na primjer:

8. Dodavanje elemenata

Dodavanje ili umetanje moguće je u ArrayListu jer je dinamična struktura podataka. Možemo koristiti metodu dodavanja () za umetanje elemenata u ArrayList nakon njegovog stvaranja.

S druge strane, veličina niza je fiksna. Međutim, možemo umetnuti elemente u niz prema zadatku. Ne možemo dinamički dodavati nove elemente iznad veličine niza.

Na primjer:

9. Dimenzija

ArrayList je jednodimenzionalni. Pri tome, niz može biti višedimenzionalan.

Na primjer:

Array i ArrayList - tablica usporedbe

Razgovarajmo o gornjoj usporedbi između Array i ArrayList

Osnove usporedberedArrayList
savitljivostNiz je statična struktura podatakaArrayList je dinamična struktura podataka
primitivcimože pohraniti i primitivne i objektne vrste elemenatamože pohraniti samo objekte iste vrste.
Vrsta sigurnostiNiz može pohraniti samo elemente sličnog tipa. U suprotnom, ona će izbaciti ArrayStoreException dok stvara objekt te matrice.ArrayList je siguran za tip, jer generički osigurava sigurnost tipa.
Ponavljanje vrijednostikoristite za petlju ili za svaku petlju kako biste postigli iteraciju.Za stvaranje zbirke koristi metodu iterator ()
Dodavanje elemenatamože umetnuti elemente u niz prema zadatku.koristite metodu add () za umetanje elemenata u ArrayList

Dimenzijavišedimenzionalansingle-dimenzionalni

Zaključak - Array vs ArrayList

To se tiče važne razlike između niza i ArrayLista u Javi. Najvažnija vitalna razlika koju morate imati na umu je da je niz statički dok je ArrayList dinamične prirode. Temeljeno na ovoj razlici, morate koristiti niz ako prepoznate dimenzije koje su vam naprijed, ako niste sigurni, jednostavno upotrijebite ArrayList.

Preporučeni članci

Ovo je vodič za Array vs ArrayList. Ovdje smo raspravljali o ključnim razlikama Array vs ArrayList s infografikom, primjerima i tablicom za usporedbu. Možete i proći naše druge predložene članke da biste saznali više -

  1. Java Vector vs ArrayList
  2. C # niz prema popisu
  3. C vs Java
  4. Prednosti Array
  5. Iterator u Javi
  6. Prednosti Python petlje | Primjer

Kategorija: