Hvad er en dynamisk matrix?
En dynamisk matrix er en datastruktur, der bruges i computerprogrammering, der indeholder flere computerobjekter som en enkelt gruppe, og kan ændres i vilje til at imødekomme det forskellige antal objekter. Gruppen holdes i en enkelt sammenhængende hukommelsesblok, så adgang til elementer er effektiv og hurtig. Dynamiske arrays kaldes også vektorer eller lister, afhængigt af det computersprog, hvor de bruges. På trods af disse navne er en bestemt liste eller vektor muligvis ikke en dynamisk matrix, da lister og vektorer kan implementeres forskelligt fra arrays og fra hinanden.
C ++ indeholder en enkelt dynamisk array -klasse kaldet Vector, der ligger i en gruppe af klasser kaldet Standard Template Library. Arrayet, der støtter denne klasse, kan fås adgang til af iteratorer eller ved indekser. Dets evne til at ændre størrelsen på efterspørgslen er en stor fordel, men det kan lokke programmerere til en falsk følelse af sikkerhed, fordi det ikke er så robust, som det ser ud til at være. Den dynamiske array, der støtter en vektor, kan ikke sikre, at ACCESS -anmodninger er gyldige. Ligesom statiske arrays kan dynamiske arrays have grænsekontrol og hukommelseskorruptionsproblemer, hvis et program forsøger at få adgang til hukommelse, der ikke er tildelt dem.
Java indeholder tre forskellige dynamiske array -klasser: Vector, ArrayList og CopyOnWriteArrayList. Elementer i arrayet er kun adgang til ved indekser, og forsøg på at få adgang til indekser uden for matrixen vil normalt ikke forårsage problemer med hukommelseskorruption. Java -vektorklassen svarer omtrent til C ++ Vector -klassen og er ikke synkroniseret for at muliggøre adgang med flere tråde. ArrayList og CopyOnWriteArrayList er derimod begge trådsikre. Af de tre er CopyOnWriteArrayList den mest arbejdskrævende klasse, fordi den genskaber den dynamiske array fuldstændigt hver gang en ny værdi skrives til matrixen.
Dynamiske arrays implementeres i det væsentlige på samme måde uanset computerenEr sprog involveret, men afhængigt af et bestemt sprog kan der være andre kapaciteter bygget ovenpå. Ligesom statiske arrays begrænser dynamiske arrays ikke den type objekt, der kan gemmes inde i dem, så længe de alle er den samme type objekt. En programmør behøver aldrig at få adgang til en dynamisk matrix direkte; Det kan altid gøres gennem en klasse, der pakker arrayet til let brug. Korrekt brug af disse arrays kan hjælpe en programmør med dataorganisation inden for kode og også med at oprette forståelig kode, der egner sig til nem vedligeholdelse.