Skip to main content

Vad är en dynamisk matris?

En dynamisk array är en datastruktur som används i datorprogrammering som innehåller flera datorobjekt som en enda grupp och kan ändras på vilja för att rymma varierande antal objekt.Gruppen hålls i ett enda sammanhängande minneblock, så tillgången till element är effektiv och snabb.Dynamiska matriser kallas också vektorer eller listor, beroende på datorspråket där de används.Trots dessa namn kanske någon viss lista eller vektor inte är en dynamisk matris, eftersom listor och vektorer kan implementeras annorlunda från matriser och från varandra.

C ++ innehåller en enda dynamisk matrisklass som heter Vector, som finns i en grupp klasserkallas standardmallbiblioteket.Arrayen som stöder denna klass kan nås av iteratorer eller med index.Dess förmåga att ändra storlek på efterfrågan är en stor fördel, men det kan locka programmerare till en falsk känsla av säkerhet eftersom det inte är så robust som det verkar vara.Den dynamiska arrayen som stöder en vektor kan inte säkerställa att åtkomstförfrågningar är giltiga.Liksom statiska matriser kan dynamiska matriser ha gränser för kontroller och minneskorruptionsproblem om ett program försöker komma åt minne som inte har tilldelats för dem.

Java innehåller tre distinkta dynamiska arrayklasser: vektor, arraylist och copyonwritearraylist.Element i matrisen nås endast av index, och att försöka komma åt index utanför matrisen kommer vanligtvis inte att orsaka minneskorruptionsproblem.Java Vector -klassen motsvarar ungefär C ++ vektorklassen och är inte synkroniserad för att möjliggöra åtkomst av flera trådar.ArrayList och CopyonWriteArraylist är däremot båda trådsäkra.Av de tre är copyonwritearRaylist den mest arbetskrävande klassen, eftersom den helt återskapar den dynamiska matrisen varje gång ett nytt värde skrivs till matrisen.

Dynamiska matriser implementeras på väsentligen på samma sätt oavsett datorspråk som är inblandat, menBeroende på ett visst språk kan det finnas andra kapaciteter byggda ovanpå det.Liksom statiska matriser begränsar dynamiska matriser inte den typ av objekt som kan lagras inuti dem, så länge de alla är samma typ av objekt.En programmerare behöver aldrig komma åt en dynamisk matris direkt;Det kan alltid göras genom en klass som lindar matrisen för enkel användning.Korrekt användning av dessa matriser kan hjälpa en programmerare med dataorganisation i koden, och även med att skapa förståelig kod som lämpar sig för enkelt underhåll.