Разлика између Арраи и АрраиЛист

Шта је Арраи и АрраиЛист?

И Арраи и АрраиЛист су структуре података засноване на индексу које се често користе у Јава програмима. Концепцијски гледано, АрраиЛист интерно потпомажу низови, међутим, разумевање разлике између њих две је кључ да постанете сјајан Јава програмер. То је прилично основни корак који треба започети, посебно почетницима који су тек започели кодирање. Иако се обоје користе за складиштење елемената у Јави, који могу бити или примитиви или објекти, они имају свој прави удио у разликама у погледу функционалности и перформанси. Главна разлика између ова два је та што је Арраи статичан, док је АрраиЛист динамичне природе. Овај чланак упоређује та два различита аспекта тако да можете одабрати један над другим.

Разлика између Арраи-а и Арраилиста-а

  1. Променљива величина

Једна од главних и приметних разлика између две структуре података је да је Арраи статичке природе, што значи да је тип података фиксне дужине, док је АрраиЛист динамичке природе, што значи да је структура података променљиве дужине. Технички гледано, дужина Арраи-а не може се мењати или модификовати након што се Арраи објекат креира. Садржи секвенцијалну збирку елемената истог типа података. Низи на Јави раде другачије него што функционишу у Ц / Ц ++. АрраиЛист, с друге стране, може сам промијенити величину и низови могу расти по потреби. Како је то динамичка структура података, елементи се могу додавати и уклањати са листе.

  1. Генерицс

Не можете креирати низове генеричких класа сучеља на Јави, тако да низови и генеричари не иду руку под руку, што онемогућује стварање генеричког низа из једног основног разлога што су низови коваријантни док су генеричари инваријантни. Иако је Арраи структура података фиксне дужине, садржи објекте исте класе или примитиве одређеног типа података. Дакле, ако покушате да похраните другачији тип података који није наведен током креирања Арраи објекта, он једноставно баца „АрраиСтореЕкцептион“. АрраиЛист, с друге стране, подржава Генерицс да би се осигурала сигурност типа.

  1. Примитиви

Примарни типови података као што су инт, доубле, лонг и цхар нису дозвољени у АрраиЛист-у. Радије држи објекте и примитиви се не сматрају објектима на Јави. С друге стране, низови могу да држе примитиве као и предмете на Јави јер је то једна од најефикаснијих структура података у Јави за чување објеката. То је агрегирани тип података који је дизајниран за држање објеката који могу бити било истог или различитог типа.

  1. Дужина

Да би добио дужину Арраи-а, код мора приступити атрибуту ленгтх, јер мора знати дужину извођења операција на Арраи-у. Док АрраиЛист користи сизе () методу за одређивање величине АрраиЛист-а, он се прилично разликује од одређивања дужине Арраи-а. Атрибут методе сизе () одређује број елемената у АрраиЛисту, што заузврат представља капацитет АрраиЛист-а.

На пример:

јавна класа АрраиЛенгтхТест

јавни статички воид маин (Стринг [] аргс)

АрраиЛист аррЛист = нови АрраиЛист ();

Стринг [] итемс = "Један", "Два", "Три";

фор (Стринг стр: ставке)

аррЛист.адд (стр);

инт сизе = итемс.сизе ();

Систем.оут.принтлн (величина);

  1. Имплементација

Арраи је изворна програмска компонента у Јави која се динамички креира и они користе оператора додјеле за држање елемената, док АрраиЛист користи атрибут адд () за уметање елемената. АрраиЛист је класа из оквира колекције на Јави која користи скуп одређених метода за приступ и модификацију елемената. Величина АрраиЛист-а може се динамички повећавати или смањивати. Елементи у низу су смештени у непрестаној меморијској локацији и његова величина остаје статична током цијеле.

  1. Перформансе

Иако обје структуре података пружају сличне перформансе као што АрраиЛист подржава Арраис, једна има мало више предности над другом, углавном у погледу времена ЦПУ-а и меморије. Рецимо, ако знате величину низа, вероватно ћете ићи са АрраиЛист-ом. Међутим, итерирање преко Арраи-а је мало брже од понављања преко АрраиЛист-а. Ако програм укључује велики број примитива, низ ће се понашати значајно боље од АрраиЛист-а, у погледу времена и меморије. Низови су програмски језик ниског нивоа који се може користити у имплементацијама колекција. Међутим, перформансе могу да варирају у зависности од операције коју изводите.

Арраи Вс. Низ листа

Арраи Низ листа
Арраи је структура података фиксне дужине чија се дужина не може мијењати након што се створи објект матрице. АрраиЛист је динамичне природе што значи да може да сама промијени величину да расте како треба.
Величина низа остаје статична у цијелом програму. Величина АрраиЛист-а може динамично расти у зависности од оптерећења и капацитета.
За похрањивање елемената користи оператора додјеле. За додавање елемената користи атрибут адд ().
Може да садржи примитиве, као и објекте истог или различитог типа података. Примитиви нису дозвољени у АрраиЛист-у. Може да садржи само типове објеката.
Низови и генеричари не иду руку под руку. Генерика је дозвољена у АрраиЛист-у.
Низови могу бити вишедимензионални. АрраиЛист је једнодимензионални.
То је изворна програмска компонента у којој су елементи смештени на непрекидним меморијским локацијама. То је класа из колекцијског оквира Јаве у којој се објекти никада не смештају на непосредним локацијама.
Променљива дужина користи се за одређивање дужине низа. Метода сизе () користи се за одређивање величине АрраиЛист-а.
За похрану одређених елемената или објеката узима мање меморије него АрраиЛист. За спремање објеката узима више меморије од Арраи-а.
Итерација преко поља је бржа од итерирања преко АрраиЛист-а. Уметање преко АрраиЛиста је знатно спорије у погледу перформанси.

Резиме

Иако неки могу помислити да примена низова у програму може да добије резултате брже него што то исто раде са АрраиЛистима из једноставног разлога што су низови структура података ниског нивоа, перформансе могу да варирају у зависности од операције коју изводите. Па, дужина Арраи-а је фиксна, док се величина АрраиЛист-а може динамички повећавати или смањивати, тако да АрраиЛист има мало предности над Арраи-ом у смислу функционалности. Међутим, упркос разликама, имају и неке сличности. Обе су базиране на индексним структурама података на Јави које вам омогућавају да похрањујете објекте и да обје омогућавају нулте вредности као и дупликате. Па, ако унапред знате величину објеката, требало би да идете с низом, а ако нисте сигурни у величину, идите са АрраиЛист.