Hva er en dynamisk matrise?

En dynamisk matrise er en datastruktur som brukes i dataprogrammering som inneholder flere databeoblinger som en enkelt gruppe, og kan endres størrelse på vilje for å imøtekomme varierende antall objekter. Gruppen holdes i en enkelt sammenhengende minneblokk, så tilgangen til elementer er effektiv og rask. Dynamiske matriser kalles også vektorer eller lister, avhengig av dataspråk de brukes i. Til tross for disse navnene, kan det hende at en hvilken som helst bestemt liste eller vektor ikke er en dynamisk matrise, siden lister og vektorer kan implementeres annerledes enn matriser og fra hverandre.

C ++ inneholder en enkelt dynamisk array -klasse kalt Vector, som er bosatt i en gruppe klasser kalt standardmalbiblioteket. Maten som støtter denne klassen kan nås av iteratorer eller av indekser. Evnen til å endre størrelse på etterspørsel er en stor fordel, men det kan lokke programmerere til en falsk følelse av sikkerhet fordi det ikke er så robust som det ser ut til å være. Den dynamiske matrisen som støtter en vektor kan ikke sikre at ACAvslutningsforespørsler er gyldige. I likhet med statiske matriser, kan dynamiske matriser ha grenser for å sjekke og minnekorrupsjonsproblemer hvis et program prøver å få tilgang til minne som ikke har blitt tildelt dem.

Java inneholder tre distinkte dynamiske array -klasser: vektor, arraylist og copyonwritearrayList. Elementer i matrisen er bare tilgjengelig med indekser, og å prøve å få tilgang til indekser utenfor matrisen vil vanligvis ikke forårsake problemer med minnekorrupsjon. Java -vektorklassen tilsvarer omtrent C ++ vektorklassen, og er ikke synkronisert for å muliggjøre tilgang med flere tråder. ArrayList og CopyonWriteArrayList er derimot begge trådsikker. Av de tre er CopyonWriteArrayList den mest arbeidsintensive klassen, fordi den helt gjenskaper den dynamiske matrisen hver gang en ny verdi skrives til matrisen.

Dynamiske matriser implementeres på hovedsakelig på samme måte uavhengig av ComputER -språk involvert, men avhengig av et bestemt språk kan det være andre muligheter bygget oppå det. I likhet med statiske matriser begrenser dynamiske matriser ikke typen objekt som kan lagres i dem, så lenge de alle er samme type objekt. En programmerer trenger aldri å få tilgang til en dynamisk gruppe direkte; Det kan alltid gjøres gjennom en klasse som pakker opp matrisen for enkel bruk. Riktig bruk av disse matriser kan hjelpe en programmerer med dataorganisasjon i kode, og også med å lage forståelig kode som egner seg til enkelt vedlikehold.

ANDRE SPRÅK