Skip to main content

Wat is een dynamische array?

Een dynamische array is een gegevensstructuur die wordt gebruikt in computerprogrammering die meerdere computerobjecten als een enkele groep bevat en naar believen kan worden gewijzigd om verschillende aantallen objecten te huisvesten.De groep wordt gehouden in een enkel aaneengesloten geheugenblok, dus de toegang tot elementen is efficiënt en snel.Dynamische arrays worden ook vectoren of lijsten genoemd, afhankelijk van de computertaal waarin ze worden gebruikt.Ondanks deze namen is een bepaalde lijst of vector mogelijk geen dynamische array, omdat lijsten en vectoren anders kunnen worden geïmplementeerd dan arrays en van elkaar.

C ++ bevat een enkele dynamische arrayklasse genaamd vector, die zich in een groep klassen bevindt,de standaard sjabloonbibliotheek genoemd.De array die deze klasse ondersteunt, is toegankelijk via iterators of in indexen.Het vermogen om op aanvraag te wijzigen, is een groot voordeel, maar het kan programmeurs in een vals gevoel van veiligheid lokken omdat het niet zo robuust is als het lijkt te zijn.De dynamische array die een vector steunt, kan niet ervoor zorgen dat toegangsverzoeken geldig zijn.Net als statische arrays kunnen dynamische arrays problemen hebben met het controleren van en geheugencorruptie als een programma probeert toegang te krijgen tot geheugen dat niet voor hen is toegewezen.

Java bevat drie verschillende dynamische arrayklassen: vector, arraylist en copyonwritearraylist.Elementen in de array zijn alleen toegankelijk via indexen en proberen toegang te krijgen tot indexen buiten de array, zullen meestal geen problemen met geheugencorruptie veroorzaken.De Java Vector -klasse is ongeveer gelijk aan de C ++ vectorklasse en is niet gesynchroniseerd om toegang door meerdere threads mogelijk te maken.ArrayList en CopyonWriteArrayList zijn daarentegen beide thread-safe.Van de drie is copyonwritearrayList de meest arbeidsintensieve klasse, omdat het de dynamische array volledig herschept telkens wanneer een nieuwe waarde naar de array wordt geschreven.

Dynamische arrays worden in wezen op dezelfde manier geïmplementeerd, ongeacht de betrokken computertaal, maarAfhankelijk van een bepaalde taal kunnen er andere mogelijkheden bovenop zijn gebouwd.Net als statische arrays beperken dynamische arrays niet het type object dat erin kan worden opgeslagen, zolang ze allemaal hetzelfde type object zijn.Een programmeur hoeft nooit rechtstreeks toegang te krijgen tot een dynamische array;Het kan altijd worden gedaan via een klasse die de array wikkelt voor eenvoudig gebruik.Goed gebruik van deze arrays kan een programmeur helpen met gegevensorganisatie in de code, en ook met het maken van begrijpelijke code die zich leent voor eenvoudig onderhoud.