Hva er Dynamic Array i Java?



Den dynamiske matrisen i Java er en type matrise med en enorm forbedring for automatisk endring av størrelse. Den eneste begrensningen for matriser er at den har en fast størrelse.

Arrays i er homogene datastrukturer implementert i Java som objekter. Arrays lagrer en eller flere verdier av en bestemt datatype og gir indeksert tilgang for å lagre den samme. Et spesifikt element i en matrise er tilgjengelig via indeksen. I denne artikkelen vil vi diskutere Dynamic Array i Java i følgende sekvens:

Introduksjon til Dynamic Array i Java

Den dynamiske matrisen er en slik type matrise med en enorm forbedring for automatisk endring av størrelse. Den eneste begrensningen for matriser er at den har en fast størrelse. Dette oversettes til en betydning at du bare kan spesifisere antall elementer som matrisen din kan holde på forhånd. På den annen side kan de dynamiske gruppene utvides når vi legger til flere elementer i sanntid. Derfor trenger ikke koderen å bestemme størrelsen på matrisen på forhånd. Det har også noen flere styrker:





  • Rask oppslag . Samme som akkurat som arrays, når det henter elementet ved en gitt indeks, tar O (1) tid.



  • Variabel størrelse . Vi kan sette inn så mange elementer som vi vil, og et dynamisk utvalg vil følgelig utvides for å holde dem.

  • Cache-vennlig . I likhet med matriser kan dynamiske matriser plassere gjenstander ved siden av hverandre i minnet, og dermed gjøre effektiv utnyttelse av cacher.



Det er noen ulemper ved å bruke dynamiske matriser i koden vår. Selv om vi bruker dynamiske matriser mer enn noe i de fleste applikasjoner, er det noen tilfeller der de ikke blir det mest foretrukne valget på grunn av begrensningene.

  • Langsom verste fall tilføyes . Normalt, mens det legges til et nytt element på slutten av en dynamisk matrise, tar det O (1) i en forekomst. Imidlertid, hvis den dynamiske matrisen ikke har flere indekser for et nytt element, må den utvides, noe som tar O (n) om gangen.

  • Dyr innsatser og slettinger. I likhet med matriser lagres elementene ved siden av hverandre. Så mens du legger til eller fjerner et element i midten av en matrise, krever det at du skyver andre elementer, noe som tar O (n) om gangen.

Diagrammene nedenfor viser hvordan matriser fungerer i sanntid og viser hvordan elementene er stablet opp. Det viser også hvordan instruksjonene endres for et gjennomsnittlig tilfelle og det verste tilfellet av matrisefunksjoner.

array - dynamisk array i java - edureka

Størrelse kontra kapasitet

Når vi initialiserer et dynamisk array, skaper den dynamiske arrayimplementeringen en forstått array i fast størrelse. Den opprinnelige størrelsen tilsvarer implementeringen. La oss for eksempel lage implementeringsmatrisen vår til å bruke 10 indekser. Nå legger vi til fire elementer i vårt dynamiske utvalg. Nå har vårt dynamiske utvalg en lengde på fire. Den underliggende matrisen vår har imidlertid en lengde på 10. Derfor kan vi si at dynamisk matrisestørrelse er fire og dens kapasitet er 10. En dynamisk matrise lagrer en spesifikk sluttindeks for å holde oversikt over sluttpunktet til den dynamiske matrisen og start punktet der den ekstra kapasiteten begynner.

Dobling henger sammen

Det kan være tilfeller der vi prøver å legge et element til en matrise der kapasiteten allerede er full. Derfor, for å lage romdynamiske matriser, opprett automatisk en ny, større og underliggende matrise. Vanligvis blir det dobbelt så stort å håndtere eventuelle nye tillegg, som det ikke forventet tidligere. Derfor tar det ingen tid å kopiere hvert element. Når du legger til et element i den dynamiske matrisen, blir det automatisk et nytt underliggende array i dobbelt størrelse, som ikke tar tid.

Slette et element

Mens du sletter et element fra en matrise, fjerner standardmetoden “remove ()” et element fra slutten og lagrer automatisk null ved den siste indeksen. Det vil også slette elementer ved en bestemt indeks ved å ringe removeAt (i) -metoden der “I” er indeks. RemoveAt (i) -metoden skifter alle de høyre elementene på venstre side fra den gitte indeksen.

java applet programmerer eksempler med utdata

Endre størrelse på en matrise

Når matriser ikke har data på høyre side av matrisen som tar unødvendig minne, frigjør metoden srinkSize () ekstra minne. Når alle sporene er oppbrukt og tilleggselementer er lagt til, må den underliggende faste størrelsen øke størrelsen. Den faktiske størrelsesendringen er dyr, da vi må tildele en større matrise og kopiere alle elementene fra en matrise du har overgrodd før den endelig kan legge til et nytt element.

Nedenfor er et eksempel på et program der matrisestørrelsen blir full og nye elementer kopieres til en ny dobbel størrelsesmatrise. Elementet som er et strengelement kalt “Mahavir” er et tillegg til det allerede fulle utvalget av størrelse 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 (' Skriv inn størrelsen på matrisen :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Enter elements of the array (Strings) :: ') for (int jeg = 0 jeg

Produksjon:

Med dette kommer vi til slutten av Dynamic Array i Java-artikkelen. Jeg håper du fikk en ide om hvordan du kan jobbe med dynamiske matriser.

Sjekk ut av Edureka, et pålitelig online læringsfirma med et nettverk av mer enn 250 000 fornøyde elever spredt over hele verden. Edurekas Java J2EE- og SOA-opplæring og sertifiseringskurs er designet for studenter og fagpersoner som ønsker å være Java-utvikler. Kurset er designet for å gi deg et forsprang i Java-programmering og trene deg for både kjerne- og avanserte Java-konsepter sammen med forskjellige Java-rammer som Hibernate & Spring.

Har du et spørsmål til oss? Vennligst nevn det i kommentarfeltet i denne 'Dynamic Array in Java' -bloggen, så kommer vi tilbake til deg så snart som mulig.