Razlika Između Nizova I Arraylista

Razlika Između Nizova I Arraylista
Razlika Između Nizova I Arraylista

Video: Razlika Između Nizova I Arraylista

Video: Razlika Između Nizova I Arraylista
Video: Kotlin : list implementation | Added Subtitles | android coding 2024, Travanj
Anonim

Nizovi protiv arraylista

Nizovi su najčešće korištena struktura podataka za pohranu zbirke elemenata. Većina programskih jezika pruža metode za lako deklariranje nizova i pristup elementima u nizovima. Arraylist se može promatrati kao dinamički niz koji može rasti u veličini. Iz tog razloga, programer ne mora znati veličinu arraylista kad ga definira.

Što su nizovi?

Na slici 1 prikazan je dio koda koji se obično koristi za deklariranje i dodjeljivanje vrijednosti nizu. Slika 2 prikazuje kako bi niz izgledao u memoriji.

vrijednosti [0] = 100;

vrijednosti [1] = 101;

vrijednosti [2] = 102;

vrijednosti [3] = 103;

vrijednosti [4] = 104;

Slika 1: Kôd za deklariranje i dodjeljivanje vrijednosti nizu

100 101 102 103 104 Indeks: 0 1 2 3 4

Slika 2: Niz pohranjen u memoriji

Iznad koda definira niz koji može pohraniti 5 cijelih brojeva i kojima se pristupa pomoću indeksa 0 do 4. Jedno važno svojstvo niza je da je čitav niz dodijeljen kao jedan blok memorije i svaki element dobiva svoj vlastiti prostor u polju. Jednom kada je niz definiran, njegova je veličina fiksna. Dakle, ako niste sigurni u veličinu niza u vrijeme sastavljanja, morali biste definirati dovoljno velik niz da bude na sigurnoj strani. No, najčešće ćemo zapravo koristiti manji broj elemenata nego što smo dodijelili. Dakle, znatna količina memorije je zapravo izgubljena. S druge strane, ako "dovoljno velik niz" zapravo nije dovoljno velik, program bi se srušio.

Što su arraylisti?

Arraylist se može promatrati kao dinamički niz koji može rasti u veličini. Stoga su arraylisti idealni za upotrebu u situaciji u kojoj ne znate veličinu elemenata potrebnih u trenutku deklaracije. U Javi arraylisti mogu sadržavati samo objekte, ne mogu izravno držati primitivne tipove (primitivne tipove možete staviti unutar objekta ili koristiti klase omota primitivnih tipova). Općenito se arraylistima nude metode za izvođenje umetanja, brisanja i pretraživanja. Vremenska složenost pristupa elementu je o (1), dok umetanje i brisanje ima vremensku složenost o (n). U Javi se arrailistima može prelaziti pomoću foreach petlji, iteratora ili jednostavno pomoću indeksa.

Koja je razlika između Arrays i Arraylists

Iako su nizovi i arraylists slični u smislu da se obojica koriste za pohranu zbirki elemenata, razlikuju se u načinu na koji su definirani. Veličina niza mora se navesti kada je niz definiran, ali možete definirati arraylist bez da znate stvarnu veličinu. Elemente možete dodati u arraylist nakon što je definiran, a to nije moguće s nizovima. Ali u Javi arraylisti ne mogu sadržavati primitivne tipove, ali se nizovi mogu koristiti za držanje primitivnih tipova. Ali ako trebate strukturu podataka koja može varirati u njezinoj veličini, arraylist bi bio najbolji izbor.

Preporučeno: