Arrayer (fält) 1
Vad kommer vi att ta upp om arrayer? Deklarera och initiera arrayen Lägga till i arrayen Ta ut på indexposition Ta reda på arrayens längd Sortera arrayen Söka igenom arrayen Loopa igenom och presentera En eller två dimensionella arrayer Hämtad från: http://goose.ycp.edu/~dhovemey/fall2011/cs201/notes/javaarrays.html 2
Array? En variabel håller ett värde åt gången. Ett fält en array kan innehålla flera värden (komponenter/element) av samma typ Lagrar en grupp av primitiver eller objekt Alla element i en array måste vara av samma datatyp/typ En int array med 4 element: 34 23 45 15 Hur skapar man en array? Syntax för att deklarera en array: typ [ ] identifierare; Syntax för att deklarera och initiera en array och ange antal element den har utrymme för: typ [ ] identifierare = new typ [antal element ]; //deklarera och initiera arrayen 3
Sträng arrayer Deklarera och initiera arrayer som håller textsträngar. Här följer 3 alternativ på hur man kan göra: String [] dittnamnpåarrayen; //deklarera Stringarrayen dittnamnpåarrayen = new String[antalplatser i arrayen]; String [] dittnamnpåarrayen = new String[antalplatser i arrayen]; //deklarera och initiera arrayen String [] dittnamnpåarrayen = { värde1, värde2 }; Exempel: String[] fruktarray = new String[3];//men inga värden anges Eller: String[] fruktarray = {"äpple", "mango","banan"};//anger värden Int arrayer Arrayer som håller heltal int[] dittnamnpåarrayen = new int[antal platser i arrayen]; int[] dittnamnpåarrayen = {33, 22, osv}; //tilldelar värden dittnamnpåarrayen [0] = 33; //tilldelar värde dittnamnpåarrayen [1] = 22; //tilldelar värde 4
Deklarera och initiera en int array Här följer 2 alternativ: int [] resultatarray = new int [4]; //varje plats i arrayen får värdet 0 //tilldela värden resultatarray [0] = 70; resultatarray [1] = 80; resultatarray [2] = 20; resultatarray [3] = 30; Eller: int[] resultatarray = {70, 80, 20, 30}; //deklarera och tilldela värden double arrayer Arrayer som håller decimaltal double[] dittnamnpåarrayen = new double[antal platser i arrayen]; double[] dittnamnpåarrayen = {33.3, 22.5, osv}; dittnamnpåarrayen [0] = 33.3; //tilldelar värde dittnamnpåarrayen [1] = 22.5; //tilldelar värde 5
Index och plats i array Array: int [] intarray = new int[4]; indexposition Plats i arrayen intarray[0] 1 intarray[1] 2 intarray[2] 3 intarray[3] 4 T.ex. intarray[3] är det fjärde elementet i arrayen Om man försöker använda ett index utanför arrayens räckvidd kastas ArrayIndexOutOfBoundException Ta reda på en arrays längd arraynamn.length Storlek på en array får man från arrayens namn punkt length T.ex.: int[] a = new int[10]; //skapar en heltalsarray med plats för 10 int arrlength = a.length; //tilldelar längden av arrayen till arrlength 6
Arrays klassen i Javas API Statiska metoder för arrayer finns i: java.util.arrays java.system klasserna http://docs.oracle.com/javase/7/docs/api/ Några metoder i klassen Arrays Metod Returtyp Statisk Beskrivning sort(a) Sorterar arrayen a. Om a innehåller void Ja objekt så måste alla elementen implementerar Comparable. sort(obj[], Comparator) equals(a,b) void boolean Ja Ja Sorterar arrayen Obj[] med hjälp av Comparator. Returnerar true om alla elementen i a och b är lika. fill(a,value) void Ja Fyller arrayen a med value. binarysearch(a,value) int Ja Returnerar positionen av value i a. 7
Arrays.sort(pa); sort() Arrays.sort(skicka med namn på array); Sorts the elements of the array of a primitive type into ascending order using their natural ordering. int Array exempel med sort() 8
Array exempel String sort() Array exempel med sort() 9
Söka i en array Foreach Används för att loopa igenom datastrukturer t.ex. en array eller arraylista 10
Syntax for-each loop for (datatyp och namn på temporär variabel : namnet på arrayen man vill loopa igenom) { } kodsats; osv. Foreach loopen int tal är en lokal variabel i loopen som för varje varv i loopen får värdet av nästa element i arrayen. Vad som loopas igenom är talarray. 11
Exempel på for each loop och for loop för att loopa igenom en array <= Hämta ut värdet på en specifik plats i arrayen 12
Söka efter indexposition i arrayen Hitta max och minsta värdet i en array 13
Räknarbaserad loop här vet vi att användaren ska mata in fem tal 14
Villkors/flaggbaserad loop - användaren får mata in betyg tills han avslutar Output: 15