Какво е динамичен масив в Java?



Динамичният масив в Java е вид масив с огромно подобрение за автоматично преоразмеряване. Единственото ограничение на масивите е, че те са с фиксиран размер.

Масиви в са еднородни структури от данни, внедрени в Java като обекти. Масивите съхраняват една или повече стойности от определен тип данни и осигуряват индексиран достъп за съхранение на същите. Достъп до конкретен елемент в масив се осъществява чрез неговия индекс. В тази статия ще обсъдим динамичния масив в Java в следната последователност:

какво е hadoop за големи данни

Въведение в динамичния масив в Java

Динамичният масив е такъв тип масив с огромно подобрение за автоматично преоразмеряване. Единственото ограничение на масивите е, че те са с фиксиран размер. Това се превръща в смисъл, че можете да посочите само броя елементи, които вашият масив може да задържи преди време. От друга страна, динамичните масиви могат да се разширяват, когато добавяме повече елементи в реално време. Следователно кодерът не трябва да определя размера на масива преди време. Той има и още няколко силни страни:





  • Бързо търсене . Същото като точно като масивите, когато извличането на елемента с даден индекс отнема O (1) време.



  • Променлив размер . Можем да вмъкнем колкото искаме елементи и съответно динамичен масив ще се разшири, за да ги задържи.

  • Улеснява кеша . Подобно на масивите, динамичните масиви могат да поставят елементи един до друг в паметта, като по този начин правят ефективно използване на кешовете.



Има някои недостатъци при използването на динамични масиви в нашия код. Въпреки това, ние използваме динамични масиви повече от всичко в повечето приложения, има някои случаи, когато те не стават най-предпочитаният избор поради неговите ограничения.

  • Бавно в най-лошия случай се добавя . Обикновено, докато добавянето на нов елемент в края на динамичен масив, отнема O (1) на един екземпляр. Ако обаче динамичният масив няма повече индекси за нов елемент, той ще трябва да се разшири, което отнема O (n) наведнъж.

  • Скъпи вмъквания и изтривания. Подобно на масивите, елементите се съхраняват в съседство един с друг. Така че, докато добавяте или премахвате елемент в центъра на масив, той изисква бутане на други елементи, което отнема O (n) наведнъж.

Диаграмите по-долу показват как масивите работят в реално време и изобразяват как елементите са подредени. Той също така показва как инструкциите се променят за среден случай и най-лошия случай на масивни функции.

масив - динамичен масив в java - edureka

Размер срещу капацитет

Когато инициализираме динамичен масив, изпълнението на динамичен масив създава разбираем масив с фиксиран размер. Първоначалният размер съответства на изпълнението. Например, нека направим нашия масив за изпълнение да използва 10 индекса. Сега добавяме четири елемента към нашия динамичен масив. Сега нашият динамичен масив има дължина четири. Въпреки това, нашият основен масив има дължина 10. Следователно, бихме могли да кажем, че размерът на динамичния масив е четири, а капацитетът му е 10. Динамичен масив съхранява специфичен краен индекс, за да следи крайната точка на динамичния масив и началната точка, от която започва допълнителният капацитет.

Удвояване се добавя

Може да има случаи, когато се опитваме да добавим елемент към масив, където капацитетът вече е пълен. Следователно, за да създадете динамични масиви на стаята, автоматично се създава нов, по-голям и основен масив. Обикновено става два пъти по-голям за обработка на нови допълнения, които не е предвиждал по-рано. Следователно, копирането на всеки елемент не отнема време. Винаги, когато добавяне на елемент към нашия динамичен масив автоматично прави нов основен масив с двоен размер, който добавя не отнема време.

Изтриване на елемент

Докато изтривате елемент от масив, методът по подразбиране “remove ()” премахва елемент от края и автоматично съхранява нула в последния индекс. Той също така ще изтрие елементи в определен индекс, като извика метода removeAt (i), където „I“ е индекс. Методът removeAt (i) измества всички десни елементи в лявата страна от дадения индекс.

Преоразмеряване на масив

Когато масивите нямат данни от дясната страна на масива, които вземат ненужна памет, методът srinkSize () освобождава допълнителна памет. Когато всички слотове се изразходват и се добавят допълнителни елементи, основният масив с фиксиран размер трябва да увеличи размера. Действителното преоразмеряване е скъпо, тъй като трябва да разпределим по-голям масив и да копираме напред всички елементи от масив, който сте обрасли, преди той най-накрая да може да добави нов елемент.

По-долу е даден пример за програма, при която размерът на масива става пълен и новите елементи се копират в нов масив с двоен размер. Елементът, който е низов елемент, наречен „Mahavir“, е допълнение към вече пълния масив с размер 3.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner public class AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Въведете размера на масива :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Въведете елементи на масива (Strings) :: ') за (int i = 0 i

Изход:

С това стигаме до края на статията Dynamic Array в Java. Надявам се да имате представа как да работите с динамични масиви.

Вижте от Edureka, доверена компания за онлайн обучение с мрежа от над 250 000 доволни учащи, разпространени по целия свят. Курсът за обучение и сертифициране на Java J2EE и SOA на Edureka е предназначен за студенти и професионалисти, които искат да бъдат Java Developer. Курсът е предназначен да ви даде начален старт в програмирането на Java и да ви обучи както за основни, така и за разширени Java концепции, заедно с различни Java рамки като Hibernate & Spring.

Имате въпрос към нас? Моля, споменете го в раздела за коментари на този блог „Динамичен масив в Java“ и ние ще се свържем с вас възможно най-скоро.