Rozdiel medzi poliami a arraylistami

Arrays vs Arraylists

Polia sú najbežnejšie používanou štruktúrou údajov na ukladanie kolekcie prvkov. Väčšina programovacích jazykov poskytuje metódy na jednoduché deklarovanie polí a prístupových prvkov v poliach. Arraylist možno vnímať ako dynamické pole, ktoré sa môže zväčšovať. Z tohto dôvodu nemusí programátorka pri definovaní arraylistu poznať veľkosť.

Čo sú polia?

Obrázok 1 je časť kódu, ktorá sa obvykle používa na deklarovanie a priradenie hodnôt k polu. Obrázok 2 zobrazuje, ako by pole vyzeralo v pamäti.

int hodnoty [5];

Hodnoty [0] = 100;

Hodnoty [1] = 101;

Hodnoty [2] = 102;

Hodnoty [3] = 103;

Hodnoty [4] = 104;

Obrázok 1: Kód na deklarovanie a priradenie hodnôt k poľu


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

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

Nad kódom definuje pole, do ktorého je možné uložiť 5 celých čísel a ku ktorým sa pristupuje pomocou indexov 0 až 4. Jednou dôležitou vlastnosťou poľa je, že celé pole je pridelené ako jeden blok pamäte a každý prvok získa svoj 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, budete musieť definovať dostatočne veľké pole, aby bolo na bezpečnej strane. Ale vo väčšine prípadov budeme používať menší počet prvkov, ako sme pridelili. Takže značné množstvo pamäte je skutočne zbytočné. Na druhej strane, ak „dostatočne veľké pole“ nie je v skutočnosti dosť veľké, program by zlyhal.

Čo sú to arraylisti?

Arraylist možno vnímať ako dynamické pole, ktoré sa môže zväčšovať. Arraylisti sú preto ideálne na použitie v situáciách, keď nepoznáte veľkosť prvkov požadovaných v čase vyhlásenia. V Java môžu arraylisti držať iba objekty, nemôžu držať primitívne typy priamo (primitívne typy môžete vložiť do objektu alebo použiť triedy wrapperov primitívnych typov). Vo všeobecnosti sa arraylistom poskytujú metódy na vykonávanie inzercie, vymazania a vyhľadávania. Časová zložitosť prístupu k prvku je o (1), zatiaľ čo vloženie a vymazanie má časovú zložitosť o (n). V Jave môžu arraylisti prechádzať pomocou foreach slučiek, iterátorov alebo jednoducho pomocou indexov.

Aký je rozdiel medzi Arrays a Arraylists

Aj keď sú polia a polia podobné v tom zmysle, že obidve sa používajú na ukladanie kolekcií prvkov, líšia sa v tom, ako sú definované. Veľkosť poľa sa musí uviesť, keď je pole definované, ale môžete definovať arraylist bez znalosti skutočnej veľkosti. Prvky môžete pridať do zoznamu po definovaní a pri poliach to nie je možné. Ale v Jave nemôžu arraylisti držať primitívne typy, ale polia sa môžu používať na držanie primitívnych typov. Ak však potrebujete dátovú štruktúru, ktorá sa môže meniť jej veľkosť, najlepšou voľbou by bol arraylist.