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 usporedbe | red | ArrayList |
savitljivost | Niz je statična struktura podataka | ArrayList je dinamična struktura podataka |
primitivci | može pohraniti i primitivne i objektne vrste elemenata | može pohraniti samo objekte iste vrste. |
Vrsta sigurnosti | Niz 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 vrijednosti | koristite za petlju ili za svaku petlju kako biste postigli iteraciju. | Za stvaranje zbirke koristi metodu iterator () |
Dodavanje elemenata | može umetnuti elemente u niz prema zadatku. | koristite metodu add () za umetanje elemenata u ArrayList |
Dimenzija | višedimenzionalan | single-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 -
- Java Vector vs ArrayList
- C # niz prema popisu
- C vs Java
- Prednosti Array
- Iterator u Javi
- Prednosti Python petlje | Primjer