Kas ir Java dinamiskais masīvs?

Dinamiskais masīvs Java ir masīva veids ar milzīgu uzlabojumu automātiskai izmēru maiņai. Vienīgais masīvu ierobežojums ir tas, ka tas ir fiksēts izmērs.

Masīvi ir viendabīgas datu struktūras, kas Java ieviesti kā objekti. Masīvi glabā vienu vai vairākas noteikta veida datu vērtības un nodrošina indeksētu piekļuvi to pašu glabāšanai. Konkrētam masīva elementam piekļūst tā indekss. Šajā rakstā mēs apspriedīsim Java dinamisko masīvu šādā secībā:

Ievads Java dinamiskajā masīvā

Dinamiskais masīvs ir šāda veida masīvs ar milzīgu uzlabojumu automātiskai izmēru maiņai. Vienīgais masīvu ierobežojums ir tas, ka tas ir fiksēts izmērs. Tas nozīmē, ka jūs varat norādīt tikai to elementu skaitu, kurus jūsu masīvs var saturēt pirms laika. No otras puses, dinamiskie bloki var paplašināties, kad mēs reāllaikā pievienojam vairāk elementu. Tāpēc kodētājam nav jānosaka masīva lielums pirms laika. Tam ir arī vēl dažas stiprās puses:





apļa plānošanas algoritms c
  • Ātra meklēšana . Tāpat kā masīviem, elementa izgūšanai noteiktā indeksā ir vajadzīgs laiks O (1).



  • Maināms lielums . Mēs varam ievietot tik daudz elementu, cik vēlamies, un dinamiskais masīvs attiecīgi paplašināsies, lai tos turētu.

  • Kešatmiņā draudzīgs . Līdzīgi masīviem, arī dinamiskie masīvi var ievietot vienumus atmiņā blakus, tādējādi efektīvi izmantojot kešatmiņas.



Dinamisko masīvu izmantošanā mūsu kodā ir daži trūkumi. Lai gan mēs lielākajā daļā lietojumu izmantojam dinamiskos masīvus vairāk nekā jebkas cits, dažos gadījumos to ierobežojumu dēļ tie nekļūst par vēlamāko izvēli.

  • Lēni vissliktākie gadījumi . Parasti, pievienojot jaunu elementu dinamiskā masīva beigās, vienā instancē tas aizņem O (1). Tomēr, ja dinamiskajā masīvā vairs nav jaunu elementu indeksu, tas būs jāpaplašina, kas vienlaikus aizņem O (n).

    darba sākšana ar vizuālo studiju
  • Dārgi ievieto un izdzēš. Līdzīgi masīviem elementi tiek glabāti blakus viens otram. Tātad, pievienojot vai noņemot vienumu masīva centrā, ir jāpiespiež citi elementi, kas vienlaikus aizņem O (n).

Zemāk redzamās diagrammas parāda, kā masīvi darbojas reāllaikā, un attēlo, kā elementi ir sakrauti. Tas arī parāda, kā instrukcijas mainās vidējam gadījumam un sliktākajam masīva funkciju gadījumam.

masīvs - dinamisks masīvs java - edureka

Izmērs pret ietilpību

Inicializējot dinamisko masīvu, dinamiskā masīva ieviešana izveido saprotamu fiksēta izmēra masīvu. Sākotnējais lielums atbilst ieviešanai. Piemēram, izveidosim ieviešanas masīvu, lai izmantotu 10 indeksus. Tagad mēs pie dinamiskā masīva pievienojam četrus vienumus. Tagad mūsu dinamiskā masīva garums ir četri. Tomēr mūsu pamatā esošā masīva garums ir 10. Tādējādi mēs varētu teikt, ka dinamiskā masīva izmērs ir četri un tā ietilpība ir 10. Dinamiskais masīvs saglabā noteiktu beigu indeksu, lai sekotu dinamiskā masīva beigu punktam un sākuma punkts, no kura sākas papildu jauda.

Pievieno dubultošanu

Var būt gadījumi, kad mēs mēģinām pievienot elementu masīvam, kurā ietilpība jau ir pilna. Tādējādi, lai izveidotu telpu dinamiskos blokus, automātiski izveidojiet jaunu, lielāku un pamatā esošo masīvu. Parasti tas kļūst divreiz lielāks, lai apstrādātu visus jaunus papildinājumus, kurus tas iepriekš neparedzēja. Tādējādi katra vienuma kopēšana nelieto laiku. Ikreiz, kad vienums tiek pievienots mūsu dinamiskajam masīvam, automātiski tiek izveidots jauns divkārša izmēra pamatā esošais masīvs, kuram pievienot nav nepieciešams laiks.

Elementa dzēšana

Dzēšot elementu no masīva, pēc noklusējuma “Remove ()” metode noņem elementu no beigām un automātiski saglabā nulli pēdējā indeksā. Tas arī izdzēsīs elementus noteiktā indeksā, izsaucot metodi removeAt (i), kur “I” ir indekss. Metode removeAt (i) novirza visus pareizos elementus kreisajā pusē no norādītā indeksa.

Masīva lieluma maiņa

Ja masīvu labajā pusē nav datu, kas aizņem nevajadzīgu atmiņu, metode srinkSize () atbrīvo papildu atmiņu. Kad visas laika nišas ir iztērētas un tiek pievienoti papildu elementi, pamata fiksētā izmēra masīvam ir jāpalielina izmērs. Faktiskā izmēru maiņa ir dārga, jo mums jāpiešķir lielāks masīvs un jāpārkopē visi elementi no masīva, kuru esat aizaudzis, pirms tas beidzot var pievienot jaunu vienumu.

Zemāk ir redzams programmas piemērs, kur masīva izmērs kļūst pilns un jauni elementi tiek kopēti jaunā divkāršā masīvā. Elements, kas ir virknes elements, ko sauc par “Mahavir”, ir papildinājums jau pilnam 3. izmēra masīvam.

kā piekļūt aws cli
importēt java.util.ArrayList importēt java.util.Arrays importēt java.util.Scanner publiskā klase AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Ievadiet masīva izmēru :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Enter masīvs (Strings) :: ') domēnam i = 0 i

Izeja:

Ar to mēs esam nonākuši līdz Dynamic Array in Java raksta beigām. Es ceru, ka jums radās ideja par to, kā strādāt ar dinamiskiem blokiem.

Pārbaudiet Autors: Edureka, uzticams tiešsaistes mācību uzņēmums ar vairāk nekā 250 000 apmierinātu izglītojamo tīklu visā pasaulē. Edureka Java J2EE un SOA apmācības un sertifikācijas kurss ir paredzēts studentiem un profesionāļiem, kuri vēlas būt Java izstrādātāji. Kurss ir paredzēts, lai dotu jums sākumu Java programmēšanā un apmācītu gan Java, gan uzlabotas koncepcijas, kā arī dažādas Java struktūras, piemēram, Hibernate & Spring.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra “Dynamic Array in Java” komentāru sadaļā, un mēs sazināsimies ar jums pēc iespējas ātrāk.