Nyckelord: array, endimensionell array, flerdimensionell array, arraylist
Det här kapitlet kommer gå igenom array och arraylist i Java som är ett sätt att lagra och strukturera data. Kapitlet om array och arraylist kommer visa varför vi bör använda dem, hur man faktiskt går tillväga för att skapa och använda en array eller en arraylist, samt skillnader mellan en array och en arraylist. Förutom de två huvuddelarna så ska vi även titta närmare på hur vi kan använda en variant av for-loopen som kallas enhanced for-loop, samt vad en hashtable är för något.
En array i Java, även kallat fält, används för att lagra flera värden i en enda variabel istället för att deklarera separata variabler för varje värde. Med andra ord, en array är en samling av element som lagras i vad som kan ses som en lista. Varje element i en array består av samma datatyp och kan plockas ut och användas med hjälp av dess index.
Vi kommer att se hur vi kan använda oss av så kallade endimensionella array, som kan liknas vid en rad av element, men även den så kallade flerdimensionell array som liknar en matris i utformningen. Längre fram i detta kapitel ska vi även titta närmare på arraylist, som namnet antyder, är nära besläktat med en array.
Vi såg tidigare att vi kan tänka oss en variabel i Java som en låda som har ett namn, innehåller data av en viss datatyp, och som även kan ha ett värde.
På liknande sätt kan vi nu tänka en array som en låda som inuti sig har flera lådor. Figur 2 nedan illustrerar hur man skulle kunna tänka sig att en array ser ut.
Vidare, vi kommer sedan se hur vi kan komma åt varje låda med hjälp av dess index, det vill säga vilket position elementet har i en array. På så sätt kan vi använda oss av värdet, läsa av det, och även redigera det. Viktigt att notera är att indexering alltid börjar på 0, det vill säga första värdet får index 0, andra värdet får index 1, och så vidare.
Som du säkerligen redan insett så blir en array väldigt användbar när vi utvecklar våra program då vi ofta kommer hantera stora samlingar av data. En array är användbar för att kunna strukturera och gruppera ihop dessa värden. Istället för att skapa enskilda variabler för varje värde vi vill spara ned, så kan vi istället spara ned alla de datapunkter vi vill arbeta med i en array.
An array object contains a number of variables. The number of variables may be zero, in which case the array is said to be empty. The variables contained in an array have no names; instead they are referenced by array access expressions that use non-negative integer index values. All the components of an array have the same type, called the component type of the array.
Oracle
Man skulle kunna säga att det generellt finns två tillvägagångssätt för att skapa en array i Java och vi kommer gå igenom syntax följt av ett kortare exempel för båda. Vi har valt att kalla dom för tillvägagångssätt 1 och tillvägagångssätt 2. Kom ihåg att alla värden i en array måste vara av samma datatyp. Exempelvis kan du inte spara en double i en array skapad för datatypen int.
datatyp [] namn = new datatyp [antal element];
Låt oss ta ett kort exempel för att visa hur det ser ut när man använder det vi kallar tillvägagångssätt 1 för att skapa en array. Om vi börjar med att skapa en array som inte innehåller några värden.
int[] arrEx = new int [4];
Eftersom vi inte initierade något startvärde för elementen i vår array så har de alla automatiskt tilldelats värdet 0.
Vidare, vill vi sedan spara ned värden i arrEx så når vi varje element med hjälp av dess index.
arrEx[0] = 22; arrEx[1] = 8; arrEx[2] = 97; arrEx[3] = 3;
Slutligen, det kommer resultera i
Vidare, istället för att skapa array med det reserverade ordet new och sedan spara ned värden i varje element så kan vi initiera värden till vår array direkt vid deklaration. Vi skapar en array genom att skriva:
datatyp [] namn = { värde, värde, värde, värde, … } ;
Notera att i det här fallet så är det måsvingar, { } , som används till höger om lika-med tecknet.
Vill vi skapa den array som vi använde i tillvägagångssätt 1, den vi döpte till arrEx, så skriver vi helt enkelt
int[] arrEx = {22, 8, 97, 3};
Vilket resulterar i samma array som tidigare,
Vi kan använda, läsa av och redigera varje element i array med hjälp av index på samma sätt som i tillvägagångssätt 1.
Som vi såg i exemplet ovan för tillvägagångssätt 1, om vi inte deklarerar något värde när vi skapar en array så kommer Java tilldela elementet ett standardvärde. Det standardvärdet för de olika datatyperna är:
Datatyp Standardvärde
byte, short, int, long 0
float, double 0.0
boolean false
ett objekt null
Hur ska man resonera kring vilken av tillvägagångssätten som är bäst att välja? En bra tumregel (som kan verka självklar) är att:
Känner du dig osäker på array och hur de är uppbyggda och deklareras så kan det vara enklare att använd dig av tillvägagångssätt 1. Den tar lite längre tid att deklarera och är mer utförlig, men kan samtidigt bidra till att underlätta förståelsen. Använd gärna papper och penna också ifall du känner dig osäker på hur den array du arbetar med ser ut.
Låt oss ta ett exempel på hur man kan använda en array i Java. Vi kommer att förutom använda en array, även använda en metod som vi lärde oss i förra kapitlet. Det vi vill att programmet ska göra är att:
Till vår hjälp kommer vi skapa en metod som tar en array och en int som argument, för att sedan skriva ut namnet som finns på index som användaren angett.
// Importerar klassen Scanner import java.util.Scanner; public class exempel { // Metod som tar en array med string och int som inparametrar public static void printName (String [] inArr, int userInput) { System.out.println("Namnet på index: " + userInput + " är: " + inArr[userInput]); } public static void main(String args[]) { // Vår array med namn String [] arrEx = {"Kalle", "Sara", "Ahmed", "Johanna", "Bengt"}; // Skapar scanner objekt för att kunna spara ned info Scanner in = new Scanner(System.in); System.out.println("Ange heltal mellan 0-4 för " + "att skriva ut ett namn"); // Sparar ned det heltal användaren anger int userInput = in.nextInt(); // Anropar metoden printName(arrEx, userInput); } }
Slutligen, det var ett första exempel på hur man kan använda en array i Java för att lagra och använda data. På kommande sidor så ska vi se flera olika exempel på hur vi kan arbeta med en array.
Lämna gärna feedback med hjälp av stjärnorna nedan och hjälp oss att fortsätta göra sidan bättre.
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!
En array i Java används för att lagra flera värden i en enda variabel istället för att deklarera separata variabler för varje värde. En array är en samling av element som lagas i vad som kan ses som en lista. Varje element i en array består av samma datatyp och kan plockas ut och användas med hjälp av dess index. Vidare, man kan skapa en array med två tillvägagångssätt.
datatyp [] namn = new datatyp [antal element];
och det andra tillvägagångssättet,
datatyp [] namn = { värde, värde, värde, värde, … } ;
Datatyp Standardvärde
byte, short, int, long 0
float, double 0.0
boolean false
ett objekt null
Nej, du kan inte ändra storleken på array efter skapandet. Det finns andra (som vi ska se längre fram) datastrukturer som kan ändra storlek efter skapandet.
Nej, du kan inte ange det negativa talet som arraystorlek. Om du anger ett negativt tal som index kommer du få kompileringsfel.
Vad tyckte du om sidan?
Lämna gärna feedback och hjälp oss göra sidan bättre
Feedback gör oss bättre!
Lämna gärna feedback om vad du tyckte om avsnittet!