Rozdiel medzi poľami a poľami

Čo je Array a ArrayList?

Array aj ArrayList sú dátové štruktúry založené na indexoch, ktoré sa často používajú v programoch Java. Z koncepčného hľadiska je ArrayList interne podporovaný poliami, avšak pochopenie rozdielu medzi nimi je kľúčom k tomu, aby sa stal vynikajúcim vývojárom Java. Je to celkom jednoduchý krok, najmä začiatočníci, ktorí práve začali kódovať. Aj keď sa oba používajú na ukladanie prvkov v jazyku Java, ktoré môžu byť buď primitívne alebo objekty, majú spravodlivý podiel na rozdieloch, pokiaľ ide o funkčnosť a výkon. Hlavný rozdiel medzi nimi je v tom, že Array je statický, zatiaľ čo ArrayList je svojou povahou dynamický. Tento článok porovnáva dva aspekty z rôznych hľadísk, aby ste si mohli vybrať jeden z druhého.

Rozdiel medzi Array a Arraylist

  1. resizable

Jedným z hlavných a viditeľných rozdielov medzi dvoma dátovými štruktúrami je to, že pole je statickej povahy, čo znamená, že ide o dátový typ s pevnou dĺžkou, zatiaľ čo ArrayList je svojou povahou dynamický, čo znamená, že ide o dátovú štruktúru s premenlivou dĺžkou. Z technického hľadiska nie je možné po vytvorení objektu Array zmeniť alebo zmeniť dĺžku poľa. Obsahuje postupný zber prvkov rovnakého typu údajov. Polia v Java fungujú inak ako v C / C ++. Na druhej strane, ArrayList sa môže sám meniť veľkosť a polia môžu rásť podľa potreby. Keďže ide o dynamickú štruktúru údajov, prvky je možné zo zoznamu pridávať a odstraňovať.

  1. generík

V Jave nemôžete vytvoriť polia rozhraní generických tried, takže polia a generiká nejdú ruka v ruke, čo znemožňuje vytvorenie generického poľa z jedného základného dôvodu, že polia sú kovariantné, zatiaľ čo generiká sú invariantné. Kým Array je dátová štruktúra s pevnou dĺžkou, obsahuje objekty rovnakej triedy alebo primitívy špecifického dátového typu. Ak sa pri vytváraní objektu Array pokúsite uložiť iný typ údajov, ako je určený, jednoducho vyvolá príkaz „ArrayStoreException“. Na druhej strane ArrayList nepodporuje Generics na zaistenie typovej bezpečnosti.

  1. primitíva

V ArrayList nie sú povolené primitívne typy údajov, ako sú int, double, long a char. Skôr drží objekty a primitíva sa nepovažujú za objekty v Jave. Polia na druhej strane môžu v jazyku Java uchovávať primitívy aj objekty, pretože je to jedna z najúčinnejších dátových štruktúr v jazyku Java na ukladanie objektov. Je to agregovaný typ údajov, ktorý je určený na uchovávanie objektov, ktoré môžu byť rovnakého alebo iného typu.

  1. dĺžka

Aby bolo možné získať dĺžku poľa, kód musí mať prístup k atribútu length, pretože človek musí poznať dĺžku, ktorá sa má vykonať na poli Array. Aj keď ArrayList používa metódu size () na určenie veľkosti ArrayList, je dosť odlišný od určenia dĺžky poľa. Atribút metódy size () určuje počet prvkov v ArrayList, čo je kapacita ArrayList.

Napríklad:

verejná trieda ArrayLengthTest

public static void main (String [] args)

ArrayList arrList = nový ArrayList ();

String [] items = „One“, „Two“, „Three“;

pre (String str: items)

arrList.add (str);

int size = items.size ();

System.out.println (veľkosť);

  1. uskutočnenie

Array je natívny programovací komponent v Jave, ktorý sa vytvára dynamicky a používa operátory priradenia na uchovávanie elementov, zatiaľ čo ArrayList používa na vloženie elementov atribút add (). ArrayList je trieda z kolekčného rámca v Jave, ktorá používa sadu špecifikovaných metód na prístup a modifikáciu prvkov. Veľkosť súboru ArrayList sa môže dynamicky zvyšovať alebo zmenšovať. Prvky v poli sú uložené na súvislom mieste v pamäti a jeho veľkosť zostáva po celú dobu statická.

  1. výkon

Aj keď obe dátové štruktúry poskytujú podobný druh výkonu ako ArrayList, ktorý je podporovaný súbormi Arrays, jeden má oproti iným iný okraj, väčšinou pokiaľ ide o čas CPU a využitie pamäte. Povedzme, že ak viete veľkosť poľa, pravdepodobne pôjdete s ArrayListom. Iterácia cez pole je však o niečo rýchlejšia ako opakovanie cez pole ArrayList. Ak program obsahuje veľké množstvo primitívov, pole bude fungovať výrazne lepšie ako ArrayList, pokiaľ ide o čas aj pamäť. Polia sú nízkoúrovňový programovací jazyk, ktorý možno použiť v implementáciách kolekcií. Výkon sa však môže líšiť v závislosti od vykonávanej operácie.

Array Vs. ArrayList

rad ArrayList
Pole je dátová štruktúra s pevnou dĺžkou, ktorej dĺžku nemožno po vytvorení objektu poľa zmeniť. ArrayList je svojou povahou dynamický, čo znamená, že sa môže v prípade potreby samy meniť.
Veľkosť poľa zostáva v celom programe statická. Veľkosť súboru ArrayList môže rásť dynamicky v závislosti od zaťaženia a kapacity.
Na ukladanie prvkov používa operátora priradenia. Na vkladanie prvkov používa atribút add ().
Môže obsahovať primitívy, ako aj objekty rovnakého alebo iného typu údajov. V ArrayList nie sú povolené primitíva. Môže obsahovať iba typy objektov.
Polia a generiká nejdú ruka v ruke. V zozname polí sú povolené generiká.
Polia môžu byť viacrozmerné. ArrayList je jednorozmerný.
Je to natívny programovací komponent, v ktorom sú prvky uložené v priľahlých miestach pamäte. Je to trieda z kolekčného rámca Java, kde objekty nie sú nikdy uložené na priľahlých miestach.
Premenná dĺžka sa používa na určenie dĺžky poľa. Na určenie veľkosti ArrayList sa používa metóda size ().
Trvá menej pamäte ako ArrayList na ukladanie určených prvkov alebo objektov. Na ukladanie objektov vyžaduje viac pamäte ako pole.
Iterácia cez pole je rýchlejšia ako opakovanie cez zoznam polí. Iterácia cez ArrayList je z hľadiska výkonu výrazne pomalšia.

zhrnutie

Aj keď si niektorí môžu myslieť, že implementácia polí v programe môže dosiahnuť výsledky rýchlejšie ako to isté s ArrayLists z jednoduchého dôvodu, že polia sú dátovou štruktúrou na nízkej úrovni, výkon sa môže líšiť v závislosti od vykonávanej operácie. Dĺžka poľa je pevne stanovená, zatiaľ čo veľkosť súboru ArrayList sa môže dynamicky zvyšovať alebo zmenšovať, takže ArrayList má z hľadiska funkčnosti malú výhodu nad poľom. Napriek rozdielom však zdieľajú aj niektoré podobnosti. Obe sú dátové štruktúry založené na indexoch v Jave, ktoré vám umožňujú ukladať objekty, a ktoré umožňujú nulové hodnoty aj duplikáty. Ak viete vopred veľkosť objektov, mali by ste ísť s poľom a ak si nie ste istí veľkosťou, choďte s ArrayListom..