Hem E-böcker Specialeffekter och spelutveckling i Java Arrayer

Specialeffekter och spelutveckling i Java(TM) - Arrayer

av Anibal Wainstein

4.0.3 Arrayer

Nu har vi kommit till den punkt där vi inte klarar oss utan arrayer längre. En array är en grupp variabler som alla är av samma typ. Man kan dra en parallell mellan arrayer och t.ex. en hurts. Tänk dig att du har en låda som representerar en variabel, lådan går sedan in i en hurts tillsammans med andra exakt likadana lådor. Hurtsen som lagrar lådorna är då arrayen. Variablen i arrayen kallas för element. När man initierar en array så måste man alltid först bestämma hur många variabler den ska innehålla. Detta görs med new kommandot. Man kan också bestämma hur många dimensioner en array ska ha men detta ska vi inte gå in på nu. Anta att vi vill skapa en array med 5 st heltal, först deklarerar vi en array av integers:

int minarray[];

Hakparanteserna används för att indikera att variabeln "minarray" är en array. Nu måste vi initiera arrayen och bestämma hur många element den skall innehålla:

minarray = new int[5];

Arrayn "minarray" innehåller nu 5 integers och du kan komma åt dem genom att t.ex. skriva:

int forstaelementet=minarray[0];
int andraelementet=minarray[1];
int tredjeelementet=minarray[2];
int fjardeelementet=minarray[3];
int sistaelementet=minarray[4];

Siffran inom hakparanteserna pekar på första elementet i arrayen, och kallas för arrayens index. Observera att arrayer är alltid nollbaserade, dvs att första elementet nås genom att specifiera en nolla (0 och inte en 1 som man kanske skulle kunna tro). I det ovanstående exemplet så når vi sista integern genom att skriva en 4. Så 4 är maxgränsen för indexsiffran trots att storleken på arrayen är 5. Man kan också initiera och deklarera storleken på en array på samma rad:

int minarray[] = new int[5];

Du kanske tror att du kan allt du behöver veta om arrayer nu? Inte riktigt än... Observera att det vi har deklarerat hittills inte har haft klasser som element. Nu ska vi se hur man skapar arrayer av klasser. Anta att vi vill skapa en array med 30 strängar:

String minastrangar[] = new String[30];

Det ser ju exakt likadant ut som exemplet ovan med integers fast man byter ut "int" mot "String" istället! Ja visst! Fast detta betyder inte att du är klar än. Det du har lyckats skapa är bara en array med pekare. Nu måste du dessutom initiera varje arrayelement för sig:

minastrangar[0]=new String("Sträng 0");
minastrangar[1]=new String("Sträng 1");
minastrangar[2]=new String("Sträng 2");
...
minastrangar[29]=new String("Sträng 29");

Jobbigt va? Man vänjer sig! Ibland kan man också hitta smarta sätt att slippa initiera varje element i en array för sig och göra det automatisk. Exemplet ovan kan skrivas så här:

String minastrangar[]=new String[30];
for (int i=0; i<30; i++)
{
    minasträngar[i]=new String("Sträng "+i);
} 

Observera att om du försöker lägga till en integer, float eller double till en String så kommer siffran automatiskt att omvandlas till en String objekt. Detta har jag utnyttjat här ovan vid initieringen av strängen ("Sträng "+i) . En stor lycka är att arrayer med integers och flyttal alltid har värdet noll på sina element i början, så dessa behöver inte initieras till noll.



Nästa sida >>