Rozdiel medzi poliami a zoznamami polí

Rozdiel medzi poliami a zoznamami polí
Rozdiel medzi poliami a zoznamami polí

Video: Rozdiel medzi poliami a zoznamami polí

Video: Rozdiel medzi poliami a zoznamami polí
Video: Prečo sa stať Aupair 2024, November
Anonim

Arrays vs Arraylists

Polia sú najbežnejšie používanou dátovou štruktúrou na ukladanie kolekcie prvkov. Väčšina programovacích jazykov poskytuje metódy na jednoduché deklarovanie polí a prístup k prvkom v poliach. Zoznam polí možno považovať za dynamické pole, ktorého veľkosť sa môže zväčšiť. Z tohto dôvodu programátor nemusí poznať veľkosť zoznamu polí, keď ho definuje.

Čo sú polia?

Na obrázku 1 je znázornený kus kódu, ktorý sa zvyčajne používa na deklarovanie a priraďovanie hodnôt do poľa. Obrázok 2 znázorňuje, ako by pole vyzeralo v pamäti.

int values[5];

values[0]=100;

values[1]=101;

values[2]=102;

values[3]=103;

values[4]=104;

Obrázok 1: Kód na deklarovanie a priraďovanie hodnôt do poľa

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

Obrázok 2: Pole uložené v pamäti

Vyššie uvedený kód definuje pole, ktoré môže uložiť 5 celých čísel a pristupuje sa k nim pomocou indexov 0 až 4. Jednou z dôležitých vlastností poľa je, že celé pole je alokované ako jeden blok pamäte a každý prvok dostane svoju vlastný priestor v poli. Akonáhle je pole definované, jeho veľkosť je pevná. Takže ak si nie ste istí veľkosťou poľa v čase kompilácie, museli by ste definovať dostatočne veľké pole, aby ste boli na bezpečnej strane. Väčšinou však v skutočnosti použijeme menší počet prvkov, ako sme pridelili. Značné množstvo pamäte je teda skutočne premrhané. Na druhej strane, ak „dosť veľké pole“nie je v skutočnosti dostatočne veľké, program spadne.

Čo sú zoznamy polí?

Zoznam polí možno považovať za dynamické pole, ktorého veľkosť sa môže zväčšiť. Preto sú zoznamy polí ideálne na použitie v situácii, keď nepoznáte veľkosť prvkov požadovaných v čase deklarácie. V Jave môžu zoznamy polí obsahovať iba objekty, nemôžu priamo obsahovať primitívne typy (primitívne typy môžete vložiť do objektu alebo použiť obalové triedy primitívnych typov). Vo všeobecnosti sú zoznamy polí vybavené metódami na vykonávanie vkladania, vymazávania a vyhľadávania. Časová zložitosť prístupu k prvku je o(1), zatiaľ čo vkladanie a vymazávanie má časovú zložitosť o(n). V jazyku Java je možné zoznamy polí prechádzať pomocou slučiek foreach, iterátorov alebo jednoducho pomocou indexov.

Aký je rozdiel medzi Arrays a Arraylists

Aj keď sú polia a zoznamy polí podobné v tom zmysle, že sa oba používajú na ukladanie kolekcií prvkov, líšia sa tým, ako sú definované. Veľkosť poľa je potrebné zadať pri definovaní poľa, ale zoznam polí môžete definovať bez toho, aby ste poznali skutočnú veľkosť. Prvky môžete pridať do zoznamu polí potom, čo je definovaný, čo pri poliach nie je možné. V Jave však zoznamy polí nemôžu obsahovať primitívne typy, ale polia možno použiť na uchovávanie primitívnych typov. Ak však potrebujete dátovú štruktúru, ktorá môže meniť svoju veľkosť, najlepšou voľbou by bol zoznam polí.

Odporúča: