1 / 16

Föreläsning 11

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

art
Download Presentation

Föreläsning 11

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Föreläsning 11 Arrayer

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

  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 0tal[1] // andra elementet, index 1tal[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 Arrayens namn är tal Arrayen innehåller 10 element av typen int • Arrayen heltal kan deklareras och skapas på följande sätt: int[] tal; // Deklarerartal = newint[10]; // Skapar • Eller så här: int[] tal = newint[10];int tal[] = newint[10]; • tal[0], tal[1], …, tal[9]

  5. Exempel På Olika Arrayer float[] priser = newfloat[500];boolean[] flags;flags = newboolean[20];char[] tecken = newchar[1750];int a = 33;double[] svar = newdouble[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 • användas i en uträkning tal[4] + 3; • tilldelas ett värde tal[4] = 3; • jämföras if (tal[4] == 67){...}; • skrivas ut System.out.println(tal[4]); • 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:

  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 elementettal[i]; // Refererar till 4:e elementettal[i + j] // Refererar till 9:e elementettal[j % i] // Refererar till 3:e elementet tal[4.4]; // Kan inte använda ett flyttal som indextal['4']; // Kan inte använda en char som indextal["4"]; // Kan inte använda en String som indextal[-1]; // Kan inte använda negativa tal som indextal[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ätttal.length(); // Fel! • length innehåller antalet element, inte det högsta index. tal.length == 10 // Santtal.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 familj 0 1 2 null null Notera! När en array skapas, så skapas inte objekten som ska lagras i arrayen. null • 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); String namn1 = familj[0].getNamn();familj[1].setNamn("Svea Svensson"); familj[2].print();

  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 elementString[] ord = {"Hej", "Java", "Array", "Snö"}; // 4 elementdouble[] tal = {1.21, 32.212, 0.02, 10.1, 0.0}; // 5 elementString[] 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 = newint[10][10]; // 100 element totaltint[][] array2d_2 = newint[5][4]; // 20 element totaltint[][] array2d_3 = newint[2][]; // x element totaltarray2d_3[0] = newint[5];array2d_3[1] = newint[10]; • Exempel på initiering int[][] i = { {0,1}, {1,2} , {2,3} , {3,4}, {4,5} };

  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);publicvoid 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();publicint[] skapaHeltalsArray(){ int[] t = newint[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 ökafamilj[2] = new Hund("Karo"); //fel typ

More Related