Hvad er Dynamic Array i Java?



Den dynamiske matrix i Java er en type matrix med en enorm forbedring til automatisk ændring af størrelse. Den eneste begrænsning af arrays er, at den har en fast størrelse.

Arrays i er homogene datastrukturer implementeret i Java som objekter. Arrays gemmer en eller flere værdier af en bestemt datatype og giver indekseret adgang til at gemme den samme. Et specifikt element i en matrix fås ved hjælp af dets indeks. I denne artikel vil vi diskutere Dynamic Array i Java i følgende rækkefølge:

Introduktion til Dynamic Array i Java

Det dynamiske array er sådan en type array med en enorm forbedring til automatisk ændring af størrelse. Den eneste begrænsning af arrays er, at den har en fast størrelse. Dette oversættes til en betydning, at du kun kan angive antallet af elementer, som din matrix kan holde på forhånd. På den anden side kan de dynamiske arrays udvides, når vi tilføjer flere elementer i realtid. Derfor behøver koderen ikke at bestemme arrayets størrelse på forhånd. Det har også nogle få styrker:





gå til funktion i python
  • Hurtig opslag . Samme som ligesom arrays tager O (1) tid, når elementet hentes ved et givet indeks.



  • Variabel størrelse . Vi kan indsætte så mange elementer, som vi vil, og et dynamisk array udvides følgelig for at holde dem.

  • Cache-venlig . I lighed med arrays kan dynamiske arrays placere emner ved siden af ​​hinanden i hukommelsen og dermed gøre effektiv udnyttelse af cacher.



Der er nogle ulemper ved at bruge dynamiske arrays i vores kode. Selvom vi bruger dynamiske arrays mere end noget i de fleste applikationer, er der nogle tilfælde, hvor de ikke bliver det mest foretrukne valg på grund af dets begrænsninger.

  • Langsom værste tilfælde tilføjes . Normalt, mens tilføjelsen af ​​et nyt element i slutningen af ​​et dynamisk array, tager det O (1) på én gang. Men hvis det dynamiske array ikke har flere indekser for et nyt element, skal det udvides, hvilket tager O (n) ad gangen.

    hvad er et navneområde i c ++
  • Dyre indsatser og sletninger. I lighed med arrays lagres elementerne ved siden af ​​hinanden. Så mens du tilføjer eller fjerner et element i midten af ​​et array, skal det skubbes til andre elementer, hvilket tager O (n) ad gangen.

Nedenstående diagrammer viser, hvordan arrays fungerer i realtid og viser, hvordan elementerne er stablet op. Det viser også, hvordan instruktionerne ændres i gennemsnit og i værste fald i array-funktioner.

array - dynamisk array i java - edureka

Størrelse vs. kapacitet

Når vi initialiserer et dynamisk array, skaber den dynamiske arrayimplementering et forstået array i fast størrelse. Den oprindelige størrelse svarer til implementeringen. Lad os for eksempel lave vores implementeringsarray til at bruge 10 indekser. Nu føjer vi fire elementer til vores dynamiske array. Nu har vores dynamiske array en længde på fire. Vores underliggende array har dog en længde på 10. Derfor kan vi sige, at dynamisk array-størrelse er fire, og dens kapacitet er 10. En dynamisk array gemmer et specifikt slutindeks for at holde styr på slutpunktet for det dynamiske array og start punkt, hvorfra den ekstra kapacitet begynder.

Fordobling tilføjes

Der kan være tilfælde, hvor vi forsøger at føje et element til et array, hvor kapaciteten allerede er fuld. Derfor oprettes automatisk nye, større og underliggende array for at oprette rumdynamiske arrays. Normalt bliver det dobbelt så stort at håndtere nye tilføjelser, som det ikke forventede tidligere. Derfor tager det ingen tid at kopiere hvert emne. Når der tilføjes et element til vores dynamiske array, oprettes der automatisk et nyt underliggende array i dobbelt størrelse, hvilket tilføjelse tager ingen tid.

Sletning af et element

Mens du sletter et element fra et array, fjerner standardmetoden 'remove ()' et element fra slutningen og gemmer automatisk nul ved det sidste indeks. Det vil også slette elementer ved et bestemt indeks ved at kalde removeAt (i) -metoden, hvor “I” er indeks. Metoden removeAt (i) skifter alle de rigtige elementer i venstre side fra det givne indeks.

Ændring af størrelse på en matrix

Når arrays ikke har nogen data i højre side af arrayet, som tager unødvendig hukommelse, frigør metoden srinkSize () ekstra hukommelse. Når alle slots er forbrugt, og yderligere elementer tilføjes, skal den underliggende array i fast størrelse øge størrelsen. Den egentlige størrelse er dyr, da vi er nødt til at tildele et større array og kopiere alle elementer fra et array, du har tilgroet, videre, før det endelig kan tilføje et nyt element.

Nedenfor er et eksempel på et program, hvor arraystørrelsen bliver fuld, og nye elementer kopieres til en ny array med dobbelt størrelse. Elementet, som er et strengelement kaldet “Mahavir”, er en tilføjelse til det allerede fulde array af størrelse 3.

hvad der er forbigående i java
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 (' Indtast størrelsen på arrayet :: ') int size = sc.nextInt () String myArray [] = new String [size] System.out.println (' Indtast element i arrayet (Strings) :: ') for (int i = 0 i

Produktion:

Med dette kommer vi til slutningen af ​​Dynamic Array i Java-artiklen. Jeg håber, du har en idé om, hvordan du arbejder med dynamiske arrays.

Tjek den af Edureka, et pålideligt online læringsfirma med et netværk på mere end 250.000 tilfredse elever spredt over hele kloden. Edurekas Java J2EE- og SOA-uddannelses- og certificeringskursus er designet til studerende og fagfolk, der ønsker at være Java-udvikler. Kurset er designet til at give dig et forspring i Java-programmering og træne dig til både kerne- og avancerede Java-koncepter sammen med forskellige Java-rammer som Hibernate & Spring.

Har du et spørgsmål til os? Nævn det i kommentarfeltet på denne “Dynamic Array in Java” -blog, og vi vender tilbage til dig hurtigst muligt.