Mis on Java-s dünaamiline massiiv?



Java dünaamiline massiiv on massiivi tüüp, mille automaatse suuruse muutmine on tohutult paranenud. Massiivide piirang on ainult see, et see on kindla suurusega.

Massiivid sisse on Java-s objektidena rakendatud homogeensed andmestruktuurid. Massiivid salvestavad ühe või mitu konkreetse andmetüübi väärtust ja pakuvad indekseeritud juurdepääsu selle salvestamiseks. Massiivi konkreetsele elemendile pääseb juurde selle indeksiga. Selles artiklis käsitleme Java dünaamilist massiivi järgmises järjestuses:

Sissejuhatus Java dünaamilisse massiivi

Dünaamiline massiiv on selline massiivi tüüp, mille automaatse suuruse muutmine on tohutult paranenud. Massiivide piirang on ainult see, et see on kindla suurusega. See tähendab tähendust, et saate määrata ainult nende elementide arvu, mida teie massiiv mahutab enne tähtaega. Teisest küljest võivad dünaamilised massiivid laieneda, kui lisame reaalajas rohkem elemente. Seetõttu pole kooderil vaja massiivi suurust enne tähtaega kindlaks määrata. Sellel on ka veel mõned tugevused:





  • Kiire otsing . Sama mis massiividel, võtab elemendi leidmine antud indeksis O (1) aega.



  • Muutuv suurus . Võime sisestada nii palju elemente kui soovime ja vastavalt sellele laieneb dünaamiline massiiv nende hoidmiseks.

  • Vahemälusõbralik . Sarnaselt massiividega võivad dünaamilised massiivid panna üksused üksteise kõrvale mällu, võimaldades seeläbi vahemälusid tõhusalt kasutada.

    kuupäeva andmetüüp ruutmeetrites



Dünaamiliste massiivide kasutamisel meie koodis on mõned varjuküljed. Ehkki me kasutame dünaamilisi massiive enamikus rakendustes rohkem kui miski, on mõnel juhul juhtumeid, kus need ei saa selle piirangute tõttu kõige eelistatumaks valikuks.

  • Aeglaselt halvimal juhul lisatakse . Tavaliselt, kui uue elemendi lisamine dünaamilise massiivi lõppu, võtab see ühes eksemplaris O (1). Kui aga dünaamilisel massiivil pole uue üksuse jaoks enam indekseid, tuleb seda laiendada, mis võtab korraga O (n).

  • Kallis lisamine ja kustutamine. Sarnaselt massiividele salvestatakse elemendid üksteise kõrval. Nii et massiivi keskel oleva elemendi lisamine või eemaldamine nõuab teiste elementide surumist, mis võtab korraga O (n).

Allpool toodud diagrammid näitavad, kuidas massiivid töötavad reaalajas, ja kujutavad elementide virnastamist. See näitab ka seda, kuidas juhised muutuvad keskmise ja halvima massiivi funktsioonide puhul.

array - dünaamiline massiiv javas - edureka

Suurus vs maht

Dünaamilise massiivi initsialiseerimisel loob dünaamilise massiivi juurutamine arusaadava kindla suurusega massiivi. Esialgne suurus vastab teostusele. Näiteks tehkem rakenduste massiiv 10 indeksi kasutamiseks. Nüüd lisame oma dünaamilisele massiivile neli elementi. Nüüd on meie dünaamilise massiivi pikkus neli. Kuid meie aluseks oleva massiivi pikkus on 10. Seega võiksime öelda, et dünaamilise massiivi suurus on neli ja selle maht on 10. Dünaamiline massiiv salvestab konkreetse lõpuindeksi, et jälgida dünaamilise massiivi lõpp-punkti ja algust punkt, kust lisavõimsus algab.

c ++ sortimisalgoritm

Lisatakse kahekordistamine

Võib juhtuda, et proovime lisada üksuse massiivile, kus maht on juba täis. Seega loovad dünaamiliste massiivide loomiseks automaatselt uue, suurema ja aluseks oleva massiivi. Tavaliselt muutub uute lisanduste käsitlemine kaks korda suuremaks, mida ta varem ei osanud ette näha. Seega ei kuluta iga üksuse kopeerimine aega. Alati, kui üksuse lisamine meie dünaamilisele massiivile teeb automaatselt uue topeltsuuruse aluseks oleva massiivi, millele lisamine ei võta aega.

Elemendi kustutamine

Elementi massiivist kustutades eemaldab vaikemenetlus „remove ()“ elemendi lõpust ja salvestab viimasesse indeksisse automaatselt nulli. Samuti kustutab see kindlas indeksis olevad elemendid, kutsudes meetodi removeAt (i), kus I on indeks. Meetod RemoveAt (i) nihutab kõik vasakpoolses servas olevad parempoolsed elemendid antud indeksist.

Massiivi suuruse muutmine

Kui massiividel pole massiivi paremal küljel andmeid, mis võtaksid tarbetut mälu, vabastab meetod srinkSize () lisamälu. Kui kõik pesad on ära kasutatud ja lisatakse täiendavaid elemente, peab aluseks oleva kindla suurusega massiivi suurus suurenema. Tegelik suuruse muutmine on kallis, kuna peame eraldama suurema massiivi ja kopeerima kõik elemendid massiivist, mille olete üle kasvanud, enne kui see saab lõpuks uue elemendi lisada.

Allpool on toodud näide programmist, kus massiivi suurus saab täis ja uued elemendid kopeeritakse uude kahekordse suurusega massiivi. Element, mis on stringielement nimega “Mahavir”, on täiendus juba täielikule massiivi 3 suurusele.

import java.util.ArrayList import java.util.Arrays import java.util.Scanner avalik klass AddingItemsDynamically {public static void main (String args []) {Scanner sc = new Scanner (System.in) System.out.println (' Sisestage massiivi suurus: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Sisestage massiivi elemendid (stringid) :: ') (int) i = 0 i

Väljund:

Sellega jõuame Java dünaamilise massiivi lõppu. Loodan, et teil on idee dünaamiliste massiividega töötamise kohta.

skanneriklass java näites

Vaadake Edureka, usaldusväärne veebiõppeettevõte, mille võrgustik hõlmab üle 250 000 rahuloleva õppija, levinud üle kogu maailma. Edureka Java J2EE ja SOA koolitus- ja sertifitseerimiskursus on mõeldud õpilastele ja spetsialistidele, kes soovivad olla Java arendajad. Kursus on loodud selleks, et anda teile Java programmeerimises edukas algus ja õpetada teid nii Java-põhiprogrammide kui ka edasijõudnute mõistete ning erinevate Java-raamistike, näiteks Hibernate & Spring, jaoks.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi „Dünaamiline massiiv Java-s” kommentaaride osas ja võtame teiega ühendust niipea kui võimalik.