Lär dig Java för Android Utveckling Arbeta med Arrays

Den här snabba lektionen visar hur du arbetar med arrayer i Java. Denna lektion är en del av en pågående serie av handledning för utvecklare som lär sig Java för att utveckla Android-applikationer.

Vad är en Array?

En array är en vanlig datastruktur som används för att lagra en ordnad lista över objekt. Matriselementen är skrivna. Till exempel kan du skapa en rad tecken för att representera vokalerna i alfabetet:

char aVowels [] = 'a', 'e', ​​'i', 'o', 'u'; 

Mycket som C eller C ++ indexeras Java-arrays numeriskt på ett 0-baserat system. Det betyder att det första elementet i matrisen (det vill säga "a") ligger på index 0, det andra ("e") är på index 1 och så vidare.

Java gör det lättare att arbeta med arrays än många andra programmeringsspråk. Arrayen själv är ett objekt (av typen array), med alla fördelar därav. Till exempel kan du alltid kolla storleken på en array med egenskapen längd:

int längd = aVowels.length; 

Vad kan jag lagra i en uppsättning?

Du kan lagra alla objekt eller primitiva typer i en array. Till exempel kan du lagra heltal i en array:

int aNums [] = 2, 4, 6; 

Eller du kan lagra icke-primitiva typer som strängar (eller någon annan klass) i en array:

String aStooges [] = "Larry", "Moe", "Curly"; 

Ibland kanske du vill lagra objekt av olika typer i en array. Du kan alltid dra nytta av arv och använda en förälderklass för arraytypen. Objektklassen är till exempel moder till alla klasser ... så att du kan lagra olika typer i ett enda array så här:

float one = 1.0f; Heltal två = nytt heltal (2); String tre = "three"; Objekt aObjects [] = en, två, tre; 

Elementen i en Java-objektmatris är referenser (eller handtag) till objekt, inte egentliga förekomster av objekt. Ett elementvärde är null tills det har tilldelats en giltig förekomst av ett objekt (det vill säga att matrisen initialiseras automatiskt men du är ansvarig för att tilldela dess värden).

Deklarerar Arrays

Det finns ett antal sätt att deklarera en array i Java. Som du har sett kan du deklarera en array och omedelbart tillhandahålla dess element med hjälp av C-style squiggly bracket-syntaxen. Till exempel deklarerar följande Java-kod en grupp av heltal med längd 3 och initierar arrayen i en rad:

int aNums [] = 2, 4, 6; 

Du kan också deklarera en array med en viss storlek och tilldela sedan värdet för varje element individuellt, så här:

dubbel aPowersOfTwo [] = ny dubbel [5]; aPowersOfTwo [0] = Math.pow (2,0); aPowersOfTwo [1] = Math.pow (2,1); aPowersOfTwo [2] = Math.pow (2,2); aPowersOfTwo [3] = Math.pow (2,3); aPowersOfTwo [4] = Math.pow (2,4); 

Detta motsvarar att skapa en array så här:

dubbel aPowersOfTwoExplicit [] = 1.0d, 2.0d, 4.0d, 8.0d, 16.0d; 

Det finns flera andra sätt att skapa arrays. Till exempel kan du skapa array-variabeln och tilldela den separat med det nya sökordet. Du kan också sätta arrayen parentes före variabelnamnet, om du vill (det här är en stilfråga). Till exempel definierar följande Java-kod en rad strängelement och tilldelar dem dem individuellt:

String [] aStopLightColors; aStopLightColors = ny sträng [3]; aStopLightColors [0] = ny sträng ("röd"); aStopLightColors [1] = ny String ("gul"); aStopLightColors [2] = ny String ("grön"); 

Ändra Array-innehåll

Som du har sett kan du tilldela array-värden genom att använda konsolens syntax:

Du kan också hämta array-värden enligt index. Till exempel kan du komma åt det andra elementet i arrayen heter aStopLightColors (definierad i föregående avsnitt) enligt följande:

String strCurrentLightColor = aStopLightColors [1]; 

Iterating Arrays

Slutligen används arrays ofta som en beställd lista över objekt. Därför kan du upptäcka att du vill iterera genom arrayen för att få tillgång till varje element metodiskt.

Det finns flera sätt att göra detta i Java. Eftersom du kan kontrollera storleken på en matris programmatiskt kan du använda någon av de typiska för eller under loop-metoder som du kan hitta bekanta. Till exempel deklarerar följande Java-kod ett enkelt heltal med tre nummer och använder en enkel för-loop för att iterera genom objekten:

int aNums [] = 2, 4, 6; för (int i = 0; i < aNums.length; i++)  String strToPrint = "aNums[" + i + "]=" + aNums[i];  

Java ger också en väldigt praktisk för-varje loop att iterera genom arrays på ett vänligt sätt. För varje slinga hjälper till att undvika dumma programmeringsfel så vanliga i slingor (felaktiga fel etc.). För att använda syntaxen för varje loop måste du definiera din loop-variabel, sedan sätta ett kolon och ange sedan namnet på din array. Till exempel ger följande kod samma loopstruktur som föregående för-loop som visas ovan:

för (int num: aNums) String strToPrint = num;  

Som du kan se är den för-varje slingan slick. Men du vet inte längre indexet medan det är itererat. Således kan den inte användas i alla situationer.

Slutsats

I denna snabba lektion har du lärt dig om arrays i Java. Arrayer är en grundläggande datastruktur som används för Java-programmering som lagrar ett beställt antal objekt av en given typ på ett organiserat sätt. I Java är arrays föremål och lagrar referenser till objekt, vilket gör uppgiften och användningen enklare (men subtilt annorlunda) än hur arrays används på andra programmeringsspråk.

Om Författarna

Mobila utvecklare Lauren Darcey och Shane Conder har medverkat flera böcker om Android-utveckling: en fördjupad programmeringsbok med titeln Android Wireless Application Development och Sams TeachYourself Android Application Development inom 24 timmar. När de inte skriver, spenderar de sin tid på att utveckla mobil mjukvara hos sina företag och tillhandahålla konsulttjänster. De kan nås via e-post till [email protected], via deras blogg på androidbook.blogspot.com, och på Twitter @ androidwireless.