Grunderna i arrayhantering

Flash Player 9 och senare, Adobe AIR 1.0 och senare

När du programmerar behöver du ofta arbeta med en uppsättning objekt snarare än ett enda objekt. I ett program för uppspelning av musik kanske du måste ha en lista med låtar som väntar på att spelas upp. Då vill du inte behöva skapa en separat variabel för varje låt i listan. Det skulle vara bättre att ha alla Låt-objekt samlade i en bunt, och kunna arbeta med dem som en grupp.

En array är ett programmeringselement som fungerar som en behållare för ett antal objekt, t.ex. en lista med låtar. Det vanligaste är att en array består av instanser av samma klass, men detta är inte något krav i ActionScript. De enskilda objekten i en array kallas element. Du kan tänka dig en array som en arkivlåda för variabler. Variabler kan läggas till som element i arrayen, vilket påminner om att lägga mappar i arkivlådan. Du kan arbeta med arrayen som en enskild variabel (som att bära hela arkivlådan till en annan plats). Du kan arbeta med dessa variabler som en grupp (som att bläddra igenom mapparna en och en när du söker efter information). Du kan också få tillgång till dem individuellt (som att öppna arkivlådan och välja en enskild mapp).

Tänk dig att du håller på att skapa en musikspelare där en användare ska kunna välja flera låtar och lägga till dem i spellistan. I ActionScript-koden har du en metod med namnet addSongsToPlaylist(), som accepterar en array som en parameter. Oberoende av hur många låtar du lägger till i listan (några, många eller kanske bara en) behöver du bara anropa metoden addSongsToPlaylist() en gång och skicka den till arrayen med låtobjekten. I metoden addSongsToPlaylist() kan du använda en slinga för att gå igenom alla arrayelementen (låtarna) en efter en och lägga till dem i spellistan.

Den vanligaste typen av ActionScript-array är en indexerad array. I en indexerad array lagras varje objekt i ett numrerat fack (kallas index). Objekten hämtas med hjälp av ett tal, ungefär som en adress. Indexerade arrayer fungerar bra i de flesta programmeringssituationer. Klassen Array är en vanlig klass som används för att representera en indexerad array.

En indexerad array används ofta för att lagra flera objekt av samma typ (objekt som är instanser av samma klass). Klassen Array har ingen metod för att begränsa vilken typ av objekt den kan innehålla. Klassen Vector är en typ av indexerad array där alla objekt i en enskild array är av samma typ. Om du använder en Vector-instans i stället för en Array-instans blir prestanda bättre och det kan även finnas andra fördelar. Klassen Vector är tillgänglig från och med Flash Player 10 och Adobe AIR 1.5.

Ett särskilt användningsområde för en indexerad array är en flerdimensionell array. En flerdimensionell array är en indexerad array, vars element är indexerade arrayer (som i sin tur innehåller andra element).

Ytterligare en arraytyp är associativa arrayer, som använder en strängnyckel i stället för ett numeriskt index för att identifiera enskilda element. ActionScript 3.0 innehåller slutligen klassen Dictionary som representerar en ordlista. En ordlista är en array som medger att du använder valfri typ av objekt som nyckel för att skilja på olika element.

Viktiga termer och begrepp

Följande referenslista innehåller viktiga termer som du kommer att stöta på när du programmerar array- och vektorhanteringsrutiner:

Array
Ett objekt som används som behållare för att gruppera flera objekt.

Array-åtkomstoperator ([])
Ett par hakparenteser som omger ett index eller en nyckel, som identifierar ett arrayelement. Den här syntaxen används efter ett arrayvariabelnamn för att ange ett enskilt element i arrayen i stället för hela arrayen.

Associativ array
En array där strängnycklar används för att identifiera enskilda element.

Bastyp
Datatypen för de objekt som kan lagras i en Vector-instans.

Ordlista
En array vars objekt består av objektpar som kallas nyckel respektive värde. Nyckeln används i stället för ett numeriskt index för att identifiera ett enskilt element.

Element
Ett enskilt objekt i en array.

Index
Den numeriska ”adress” som används för att identifiera ett enskilt element i en indexerad array.

Indexerad array
Den standardarray som används för att lagra element i en numrerad position och som använder tal (index) för att identifiera enskilda element.

Nyckel
Strängen eller objektet som används för att identifiera ett enskilt element i en associativ array eller i en ordlista.

Flerdimensionell array
En array som innehåller objekt som är arrayer och inte enskilda värden.

T
Standardregeln som används i den här dokumentationen för att representera bastypen för en Vector-instans, oavsett bastyp. T-regeln används för att representera ett klassnamn, vilket visas i beskrivningen av typparametern. (”T” står för ”typ” som i ”datatyp”.)

Type-parameter
Den syntax som används med vektorklassnamnet för att ange vektorns bastyp (datatypen för de objekt som lagras i klassen). Syntaxen består av en punkt (.), följt av datatypsnamnet omgivet av vinkelparenteser (<>). Sammansatt ser det ut så här: Vector.<T>. I den här dokumentationen representeras den klass som anges i type-parametern i allmänhet som T.

Vektor
En typ av array, vars element alla är instanser av samma datatyp.