Array![]() Een array is bij het programmeren van computers een datastructuur die bestaat uit een lijst van elementen. Ieder element heeft een unieke index waarmee dat element wordt aangeduid. De verschillende elementen in een array kunnen dezelfde waarde hebben. Hoewel een array een eenvoudige datastructuur is, kan er veel mee worden gedaan. Vectoren in een meerdimensionale ruimte kunnen bijvoorbeeld met een eenvoudige array worden geïmplementeerd. Een array heeft als index de elementen van een gegeven indexverzameling. De elementen van een array worden meestal opeenvolgend in het geheugen opgeslagen. In de meeste programmeertalen wordt de eis gesteld, dat alle elementen van de array van hetzelfde datatype zijn. De eenvoudigste implementatie van een array, zoals in C gebeurt, is een rij opeenvolgende geheugencellen. Wanneer arrays als een rij van opeenvolgende geheugencellen worden geïmplementeerd, wordt het adres van het i-de element van een array gegeven door Een dynamische array kan van lengte veranderen. Dit kan impliciet gebeuren, door het toevoegen of verwijderen van elementen, zoals met het Voorbeeld in CVoorbeeld van een array van integers in de programmeertaal C: int array[2]; // Een array met 2 integers (geen van de elementen hebben (nog) een waarde) array[0] = 1; // Geeft het allereerste element in de array waarde 1 array[1] = 3; // Geeft het tweede element in de array waarde 3 Hierbij is de naam van de array "array" en de opgeslagen waarden in de array zijn 1 en 3. Deze waarden zijn nu te gebruiken met behulp van Meerdimensionele arrays![]() Het hierboven genoemde voorbeeld is een eendimensionale array, ook wel vector genoemd. Het is in veel programmeertalen ook mogelijk om meerdimensionale arrays te gebruiken. Een tweedimensionale array wordt ook wel een matrix genoemd. Er bestaan verschillende manieren om een multidimensionale array te representeren in een computergeheugen. Eén mogelijkheid is om een array te maken met pointers naar andere arrays, zoals in de afbeelding is weergegeven. Als we een tweedimensionale array beschouwen als een tabel met rijen en kolommen, dan zijn de rijen afzonderlijke arrays. Een voordeel hiervan is dat de rijen niet allemaal even lang hoeven te zijn. Een array waarin deze rijen niet allemaal even lang hoeven te zijn heet een 'jagged array'. De lengte van de rijen kan dan dynamisch worden aangepast. Een andere mogelijkheid is om de rijen achter elkaar op te slaan als elementen in een eendimensionale array. Een tweedimensionale array met m rijen en n kolommen wordt dan een eendimensionale van grootte m×n. De eerste rij is dan opgeslagen in elementen 1 tot en met n, de tweede in elementen n+1 tot en met 2n, enzovoort. Het voordeel van deze representatie is snelheid: alle elementen staan bij elkaar in het geheugen en er hoeven geen pointers naar andere delen van het geheugen te worden gevolgd. De uitbreiding naar drie- en meerdimensionale arrays is in beide gevallen is mogelijk door een array van tweedimensionale arrays te maken, enzovoort. Associatieve arrays![]() Voor een associatieve array gelden minder restricties op de index: het is toegestaan om niet-discrete waarden als index te gebruiken. In een taal als Perl kunnen bijvoorbeeld arrays van pointers naar hashes, associatieve arrays, worden gemaakt. De waarden hoeven ook in veel talen met associatieve arrays niet van hetzelfde type te zijn. Voorbeelden van talen met associatieve arrays zijn PHP, Perl en JavaScript. Associatieve arrays worden over het algemeen geïmplementeerd met behulp van hashtabellen en zijn in de praktijk altijd dynamisch. Arrayondersteuning in enkele talenEen lijstje van arrayondersteuning in enkele talen:
Literatuur
Zie de categorie Array data structure van Wikimedia Commons voor mediabestanden over dit onderwerp.
|