Presentation laddar. Vänta.

Presentation laddar. Vänta.

Föreläsning 11 Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer.

Liknande presentationer


En presentation över ämnet: "Föreläsning 11 Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer."— Presentationens avskrift:

1 Föreläsning 11 Arrayer

2 Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer (objekt av klassen Person) GeometriObjekt (Cirkel och Rektangel) int[] tal = new int[3];

3 Arrayer Array består av ett antal element Varje element lagrar ett värde av arrayens typ Varje element har ett index som avgör var i arrayen elementet finns tal[0] // första elementet, index 0 tal[1] // andra elementet, index 1 tal[2] // tredje elementet, index 2 En array med N element har 0 som första index och N-1 som sista

4 Deklarera och Skapa Array Arrayen heltal kan deklareras och skapas på följande sätt: int[] tal = new int[10]; int tal[] = new int[10]; Eller så här: int[] tal; // Deklarerar tal = new int[10]; // Skapar Arrayens namn är tal Arrayen innehåller 10 element av typen int tal[0], tal[1], …, tal[9]

5 Exempel På Olika Arrayer float[] priser = new float[500]; boolean[] flags; flags = new boolean[20]; char[] tecken = new char[1750]; int a = 33; double[] svar = new double[a + 67]; float[] priser2 = priser;

6 Arrayer Är Objekt I java ses en array som ett objekt Instansierar en array med new Finns en medlemsvariabel (length) En variabel av typen array är en referensvariabel Används arrayer som parameter skickas referensen, inte elementen En array är dock inte en instans av klassen Array

7 Arrayer Element refereras med namnet på arrayen följt av dess index tal[4] representerar en plats att lagra ett heltal av typen int T.ex kan den: tal[4] + 3; användas i en uträkning tal[4] = 3; tilldelas ett värde if (tal[4] == 67){...}; jämföras System.out.println(tal[4]); skrivas ut

8 Storleken på en Array En array har en fast storlek, som inte kan förändras Index som används för att referera ett element måste vara giltigt int tal[] = new int[10]; int i = 3; int j = 5; tal[4]; // Refererar till 5:e elementet tal[i]; // Refererar till 4:e elementet tal[i + j] // Refererar till 9:e elementet tal[j % i] // Refererar till 3:e elementet tal[4.4]; // Kan inte använda ett flyttal som index tal['4']; // Kan inte använda en char som index tal["4"]; // Kan inte använda en String som index tal[-1]; // Kan inte använda negativa tal som index tal[10]; // Kan inte använda tal större högsta index!

9 Storleken på en Array Varje array har en publik konstant som kallas length Denna konstant innehåller storleken på arrayen (antal element) tal.length; // Rätt tal.length(); // Fel! length innehåller antalet element, inte det högsta index. tal.length == 10 // Sant tal.length == 9 // Falskt

10 En Array Av Objekt Elementen i en array kan vara referenser till ett objekt Deklarationen: Person[] familj = new Person[3]; reserverar utrymme för att lagra 3 referenser till Person-objekt Några Person-objekt skapas inte Varje objekt i arrayen måste instansieras var för sig

11 En Array Av Personer Skapar 4 objekt 1 array för att lagra Person-objekt 3 Person-objekt Arrayen används sen för att ”komma åt” de enskilda elementen Person[] familj = new Person[3]; familj[0] = new Person("Pappa Svensson", 33); familj[1] = new Person("Mamma Svensson", 31); familj[2] = new Person("Dotter Svensson", 8); Notera! När en array skapas, så skapas inte objekten som ska lagras i arrayen. String namn1 = familj[0].getNamn(); familj[1].setNamn("Svea Svensson"); familj[2].print(); familj 210 null

12 Initiering Av Arrayer En array kan ges värden när den skapas Omges av klamrar, separeras med komma Storleken på arrayen bestäms genom antalet initieringsvärden int[] tal = {79, 87, 94, 82, 67, 98, 87, 81}; // 8 element String[] ord = {"Hej", "Java", "Array", "Snö"}; // 4 element double[] tal = {1.21, , 0.02, 10.1, 0.0}; // 5 element String[] betygSkala = {"IG", "G", "VG", "MVG"}; // 4 element Person[] f = {new Person("Pappa Svensson", 33), new Person("Mamma Svensson", 31), new Person("Dotter Svensson", 8)}; // 3 element

13 2D Arrayer En 2D-array är en array av arrayer Första arrayens storlek måste anges Den andra arrayen behöver inte vara av samma storlek int[][] array2d_1 = new int[10][10]; // 100 element totalt int[][] array2d_2 = new int[5][4]; // 20 element totalt int[][] array2d_3 = new int[2][]; // x element totalt array2d_3[0] = new int[5]; array2d_3[1] = new int[10]; int[][] i = { {0,1}, {1,2}, {2,3}, {3,4}, {4,5} }; Exempel på initiering

14 Arrayer Som Parametrar En array kan skickas till en metod som en parameter int[] tal = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; add1(tal); public void add1(int[] t) {... } Det är referensen till arrayen som skickas Ändringar på ett element i metoden gör ändringar i ”originalet”

15 Arrayer som returvärde En metod kan även returnera en array av en viss typ int[] tal = skapaHeltalsArray(); public int[] skapaHeltalsArray() { int[] t = new int[10];... return t; }

16 Arrayer - Nackdelar Fast storlek Kan varken öka eller minska dynamiskt Kan endast lagra en typ av element Saknar användbara metoder Person[] familj = new Person[3]; familj[0] = new Person("Pappa Svensson", 33); familj[1] = new Person("Mamma Svensson", 31); familj[2] = new Person("Dotter Svensson", 8); familj[3] = new Person("Son Svensson", 14); //kan inte öka familj[2] = new Hund("Karo"); //fel typ


Ladda ner ppt "Föreläsning 11 Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer."

Liknande presentationer


Google-annonser