Разлика между Array и ArrayList

Какво е Array и ArrayList?

И Array, и ArrayList са базирани на индекс структури от данни, които често саизползванив Java програми. Концептуално казано, ArrayList е вътрешно подкрепен от масиви, но разбирането на разликата между двете е ключът към това да станете страхотен разработчик на Java. Това е съвсем основната стъпка за започване, особено за начинаещите, които току-що са започнали да кодират. Въпреки че и двете се използват за съхраняване на елементи в Java, които могат да бъдат примитиви или обекти, те имат своя справедлив дял от разликите по отношение на функционалността и производителността. Основната разлика между двете е, че Array естатичникато има предвид, че ArrayList има динамичен характер. Тази статия сравнява двете по различни аспекти, така че да можете да изберете едно пред друго.

Разлика между Array и ArrayList

Разлика между Array и Arraylist

  1. Преоразмеряем

Една от основните и забележими разлики между двете структури от данни е, че Array има статичен характер, което означава, че е тип данни с фиксирана дължинадокатоArrayList е динамичен по своята същност, което означава, че това е структура с данни с променлива дължина. Втехническитермини, дължината на Array не може да бъде променяна или модифицирана след създаването на обекта Array. Той съдържа последователно събиране на елементи от същия тип данни. Масивите в Java работят по различен начин, отколкото функционират в C / C ++. ArrayList, от друга страна, може да се преоразмерява и масивите могат да растат според нуждите си. Тъй като това е динамична структура от данни, елементите могат да се добавят и премахват от списъка.



  1. Дженерици

Не можете да създавате масиви от родови класове интерфейси в Java, така че масивите и генериците не вървят ръка за ръка, което прави невъзможно създаването на общ масив поради основната причина, поради която масивите са ковариантни, докато генеричните са инвариантни. Докато Array е структура с данни с фиксирана дължина, той съдържа обекти от същия клас или примитиви от конкретния тип данни. Така че, ако се опитате да съхранявате различен тип данни, различен от посочения, докато създавате обект Array, той просто изхвърля „ArrayStoreException“. ArrayList, от друга страна, поддържа Generics, за да осигури безопасност на типа.

  1. Примитиви

Примитивни типове данни като int, double, long и char не са разрешени в ArrayList. Той по-скоро съдържа обекти и примитивите не се считат за обекти в Java. Масивите, от друга страна, могат да съдържат примитиви, както и обекти в Java, защото това е една от най-ефективните структури от данни в Java за съхраняване на обекти. Това е агрегиран тип данни, който е проектиран да съхранява обекти, които могат да бъдат от един и същ или различен тип.

  1. Дължина

За да получи дължината на масива, кодът трябва да осъществи достъп до атрибута дължина, защото човек трябва да знае дължината, за да извършва операции върху масива. Докато ArrayList използва метод size (), за да определи размера на ArrayList, той е доста различен от определянето на дължината на ArrayList. Атрибутът на метода size () определя броя на елементите в ArrayList, което от своя страна е капацитетът на ArrayList.

Разлика между Array и ArrayList-1

Например:

публичен клас ArrayLengthTest {

публична статична void main (String [] args) {

ArrayList arrList = нов ArrayList ();

String [] items = {“One”, “Two”, “Three”};

за (String str: items) {

arrList.add (str);

}

int размер = items.size ();

System.out.println (размер);

}

}

  1. Изпълнение

Array е естествен програмен компонент в Java, който се създава динамично и използва оператор за присвояване, за да държи елементи, докато ArrayList използва атрибут add () за вмъкване на елементи. ArrayList е клас от рамката за събиране в Java, който използва набор от определени методи за достъп и промяна на елементите. Размерът на ArrayList може да се увеличава или намалява динамично. Елементите вмасивсе съхраняват в съседна памет и размерът му остава неподвижен през цялото време.

  1. производителност

Докато и двете структури от данни осигуряват подобен вид производителност, тъй като ArrayList се поддържа от Arrays, една има малко предимство пред друга, най-вече по отношение на времето на процесора и използването на паметта. Да кажем, че ако знаете размера на масива, най-вероятно ще отидете с ArrayList. Обаче итерацията над масив е малко по-бърза от итерацията през ArrayList. Ако програмата включва голям брой примитиви, anмасивще се представи значително по-добре от ArrayList, както по време, така и по памет. Масивите са ниско нивопрограмен езиккоито могат да се използват в реализации на колекции. Ефективността обаче може да варира в зависимост от операцията, която извършвате.

Array Vs. Arraylist

Масив ArrayList
Масивът е структура с данни с фиксирана дължина, чиято дължина не може да бъде модифицирана след създаването на обект на масив. ArrayList има динамичен характер, което означава, че може да се преоразмерява, за да расте, когато е необходимо.
Размерът на масива остава статичен в цялата програма. Размерът на ArrayList може да нараства динамично в зависимост от товара и капацитета.
Той използва оператор за присвояване за съхраняване на елементи. Той използва атрибута add () за вмъкване на елементи.
Той може да съдържа примитиви, както и обекти от същия или различен тип данни. Примитивите не са разрешени в ArrayList. Той може да съдържа само типове обекти.
Масивите и Generics не вървят ръка за ръка. Генеричните лекарства са разрешени в ArrayList.
Масивите могат да бъдат многоизмерни. ArrayList е едноизмерен.
Това е естествен компонент за програмиране, при който елементите се съхраняват в съседни места с памет. Това е клас от рамката за колекции на Java, където обектите никога не се съхраняват на съседни места.
Променливата за дължина се използва за определяне на дължината на масива. Методът Size () се използва за определяне на размера на ArrayList.
Отнема по-малко памет от ArrayList за съхраняване на определени елементи или обекти. Отнема повече памет от масива за съхраняване на обекти.
Итерацията над масив е по-бърза от итерацията над ArrayList. Итерирането над ArrayList е значително по-бавно по отношение на производителността.

Обобщение

Докато някои може да мислят, че внедряването на масиви в програма може да доведе до резултати по-бързо, отколкото да се направи същото с ArrayLists по простата причина, че масивите са структура от данни на ниско ниво, производителността може да варира в зависимост от операцията, която извършвате. Е, дължината на масив е фиксирана, докато размерът на ArrayList може да се увеличава или намалява динамично, така че ArrayList има малко предимство над масива по отношение на функционалността. Въпреки разликите обаче, те също споделят някои прилики. И двете са базирани на индекс структури от данни в Java, които ви позволяват да съхранявате обекти и и двете позволяват нулеви стойности, както и дубликати. Е, ако предварително знаете размера на обектите, трябва да използвате масив и ако не сте сигурни за размера, отидете с ArrayList.