Array i ArrayList

Anonim

Što je Array i ArrayList?

Obje Array i ArrayList su indeksne strukture podataka koje se često koriste u Java programima. Konceptualno govoreći, ArrayList interno podržava polja, međutim, razumijevanje razlika između ta dva ključ je postati veliki Java programer. To je prilično osnovni korak, a posebno početnici koji su upravo započeli kodiranje. Iako se oba koriste za pohranjivanje elemenata u Java, koji mogu biti primitivni ili objekti, oni imaju svoj pravi udio razlika u smislu funkcionalnosti i performansi. Glavna razlika između ta dva je da Array je statičan, dok je ArrayList dinamičan u prirodi. Ovaj članak uspoređuje dva na različite aspekte tako da možete odabrati jedan za drugim.

Razlika između Array i Arraylist

  1. promjenjive veličine

Jedna od glavnih i primjetnih razlika između dvije strukture podataka je da je Array statičan, što znači da je vrsta fiksne duljine podataka dok je ArrayList dinamičan u prirodi, što znači da je struktura podataka promjenjive duljine. U tehničkom smislu, duljina Arraza ne može se mijenjati ili mijenjati nakon stvaranja Array objekta. Sadrži sekvencijalnu zbirku elemenata iste vrste podataka. Nizovi u Java rade drugačije nego što funkcioniraju u C / C + +. ArrayList, s druge strane, može sami promijeniti veličinu i polja mogu rasti kako su im potrebne. Budući da je to dinamična struktura podataka, elementi se mogu dodati i ukloniti s popisa.

  1. Generički lijekovi

Ne možete stvoriti nizove generičkih klasa sučelja u Javi tako da polja i generički podaci ne idu ruku pod rukom, što onemogućuje stvaranje generičkog retka za jedan osnovni razlog zbog kojeg su polja kovarija dok su generici nepromjenjivi. Dok je Array struktura podataka fiksne duljine, ona sadrži objekte iste klase ili primitive određene vrste podataka. Dakle, ako pokušate pohraniti različite vrste podataka, osim one navedene tijekom stvaranja Array objekta, jednostavno baca "ArrayStoreException". ArrayList, s druge strane, podržava Generics kako bi osigurao vrstu sigurnosti.

  1. primitivci

Primitivne vrste podataka kao što su int, double, long i char nisu dopuštene u ArrayList. Umjesto toga, objekti i primitivi ne smatraju se objektima u Javi. Slojevi, s druge strane, mogu držati primitive kao i objekte u Javi, jer je to jedna od najučinkovitijih struktura podataka u Javi za pohranu predmeta. To je skupna vrsta podataka koja je dizajnirana za držanje objekata koji mogu biti istovjetni ili različiti.

  1. dužina

Da biste dobili duljinu Arra, kôd treba pristupiti atributu duljine jer mora znati duljinu za obavljanje operacija na Arrayu. Dok ArrayList koristi veličinu () metoda za određivanje veličine ArrayList, to je prilično različito od određivanja duljine Array. Atribut atributa veličine () određuje broj elemenata u ArrayList, što je pak kapacitet ArrayList.

Na primjer:

javna klasa ArrayLengthTest {

javni statički prazni glavni (String [] args) {

ArrayList arrList = novi ArrayList();

String [] items = {"Jedan", "Dva", "Tri"};

za (String str: stavke) {

arrList.add (STR);

}

veličina int = items.size ();

Sustava (veličina);

}

}

  1. izvršenje

Array je izvorna programska komponenta u Java koja se dinamički stvara i koriste operatera zadataka za držanje elemenata, dok ArrayList koristi atribut dodavanja () za umetanje elemenata. ArrayList je klasa iz zbirke okvira u Java koja koristi skup određenih metoda za pristup i izmjenu elemenata. Veličina ArrayList-a može se dinamički povećati ili smanjiti. Elementi u nizu pohranjeni su u susjednom memorijskom mjestu i njegova veličina ostaje statična tijekom čitavog vremena.

  1. Izvođenje

Iako obje strukture podataka pružaju sličnu vrstu izvedbe kao ArrayList je podržan od Arrays, jedan ima malo ruba nad drugom uglavnom u smislu CPU vrijeme i korištenje memorije. Recimo, ako znate veličinu polja, vjerojatno ćete ići s ArrayListom. Međutim, iteriranje preko Arraya je malo brže od iteracije preko ArrayList. Ako program uključuje veliki broj primitiva, polje će biti značajno bolje od ArrayList, u smislu vremena i memorije. Nizovi su programski jezik niske razine koji se može koristiti u implementaciji zbirki. Međutim, izvedba se može razlikovati ovisno o radnji koju obavljate.

Array vs. Arraylist

red ArrayList
Array je struktura podataka fiksne duljine čija se duljina ne može mijenjati nakon stvaranja objektiva. ArrayList je dinamičan u prirodi, što znači da se može promijeniti veličinu rastu po potrebi.
Veličina polja ostaje statična tijekom cijelog programa. Veličina ArrayList može dinamički rasti ovisno o opterećenju i kapacitetu.
Upotrebljava operatera zadatka za pohranjivanje elemenata. Koristi atribut dodavanja () za umetanje elemenata.
Može sadržavati primitive kao i objekte istog ili različitog tipa podataka. Primitivci nisu dopušteni u ArrayListu. Može sadržavati samo vrste objekata.
Array i Generics ne idu ruku pod ruku. Generički su dopušteni u ArrayList.
Rasporedi mogu biti višedimenzionalni. ArrayList je jednodimenzionalan.
To je izvorna komponenta programiranja u kojoj su elementi pohranjeni u susjednim mjestima memorije. To je klasa iz okvira zbirke Java gdje se predmeti nikada ne pohranjuju u susjednim mjestima.
Varijabla duljine se koristi za određivanje duljine Arra. Veličina () metoda koristi se za određivanje veličine ArrayList.
Uzima manje memorije nego ArrayList za pohranu određenih elemenata ili objekata. U memoriju pohranjuje više memorije nego Array.
Iteriranje preko polja je brže od iteracije preko ArrayList. Iteriranje preko ArrayList-a znatno je sporije u pogledu izvedbe.

Sažetak

Dok neki mogu misliti da implementacija polja u programu mogu postići brže rezultate nego raditi s ArrayListima zbog jednostavnog razloga da su polja niske razine strukture podataka, performanse mogu varirati ovisno o operaciji koju obavljate. Pa, duljina Arraza je fiksna, dok se veličina ArrayList može dinamički povećati ili smanjiti, pa ArrayList ima malo ruba nad Arrayom ​​u smislu funkcionalnosti. Međutim, unatoč razlikama, oni dijele i neke sličnosti. Obje su strukture podataka Java-bazirane na Java koji omogućuju pohranjivanje objekata i oboje dopuštaju null vrijednosti kao i duplikate. Pa, ako unaprijed znate veličinu predmeta, trebali biste ići s nizom, a ako niste sigurni u veličinu, idite s ArrayListom.