kapittel 7
DESCRIPTION
Kapittel 7. Array (lister og tabellar). 7.1 Arrayelement. Array (lister, tabellar) er kjent frå VB Blir brukt til å organisere data når vi har mange dataelement av same sort I Java startar indekseringa alltid på 0 Indeks står i klammeparentes: [indeks] - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/1.jpg)
Kapittel 7
Array (lister og tabellar)
![Page 2: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/2.jpg)
7.1 Arrayelement Array (lister, tabellar) er kjent frå VB Blir brukt til å organisere data når vi har
mange dataelement av same sort I Java startar indekseringa alltid på 0 Indeks står i klammeparentes: [indeks] Indeksen er alltid eit ikkje-negativt
heiltal, vi kan bruke matematiske uttrykk som indeks så lenge resultatet blir eit heiltal
![Page 3: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/3.jpg)
7.2 Deklarering og bruk Array er objekt, blir laga med new() int[] height = new int[17];
Her får vi eit array med plass til 17 heiltal Indeksane vil vere frå 0 til 16 Alle verdiar er i utgangspunktet 0
Alle Java array er iteratorar, så vi kan bruke foreach – versjonen av for-loop
[] operatoren sjekkar indeksgrenser Vi bør likevel sjekke dette sjølve for å unngå
feil Størrelsen til eit array er konstant
![Page 4: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/4.jpg)
Deklarering og bruk Alternativ syntaks bør ikkje brukast
int[] grades viser tydeleg at vi skal ha eit array av integers
int grades[] viser mindre tydeleg kva vi skal ha Bruk av initialiseringsliste
Vi kan initialisere med {verdi1, verdi2, ..., verdiN} når arrayet blir deklarert, ikkje for å endre verdiar seinare
Array som parameter Merk at eit array er eit objekt, så ein kopi av
referansen (adressa) blir sendt som parameter Metoden som får ein slik parameter kan endre
element i arrayet
![Page 5: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/5.jpg)
7.3 Array av objekt Vi kan bruke array til å samle objekt på
same måte som primitive typer Vi får i så fall eit array av
objektreferanser Tunes-eksemplet
CDCollection som eigen klasse Inneheld eit array CD[] Har metoder for å administrere samlinga I Java har vi også “ferdigsydde” collection-klasser
CD-klassen representerer ein enkelt CD
![Page 6: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/6.jpg)
7.4 Kommandolinjeargument Vi kan no avsløre kva ‘String[] args’ betyr!
Array av String-referanser som er sendt til main() metoden ved oppstart
Blir vanlegvis kalla args, men namnet er valfritt Ved kjøring via kommandolinja vil dei to første
argumenta (java klassenamn) ikkje bli med I NetBeans må vi spesifisere eventuelle
kommandolinjeargument spesielt Ofte brukt når vi kjører eit program mange ganger
med ulike argument Bruk args.length for å sjekke talet på argument
![Page 7: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/7.jpg)
7.5 Parameterlister med variabel lengde Vi kan bruke ... mellom type og namn
for å tillate eit vilkårleg tal parameter til ein metode public double average(int ... list)
Desse parametra blir automatisk kopiert inn i eit array
Maks eit slikt sett av parameter pr metode
Alltid til slutt i parameterlista
![Page 8: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/8.jpg)
7.6 Todimensjonale array Eit todimensjonalt array tilsvarer rader
og kolonner i ein tabell To indeksar
int[][] tabell = new int[antRader][antKol];
tabell[rad][kolonne] = verdi; Kvar rad er å betrakte som eit separat
array Vi kan ha fleire dimensjonar etter behov
![Page 9: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/9.jpg)
7.7 ArrayList klassen Dette er eit eksempel på ein collection-klasse
Finst i java.util – pakken Fungerer som eit array med tilleggstenester
Størrelsen blir automatisk regulert Legge til eller fjerne element automatisk, sjå liste over
metoder i figur 7.6 Vi kan spesifisere elementtype
ArrayList<String> band; Typesjekking inkludert, vi kan ikkje legge til anna
enn String-objekt Vi treng ikkje caste objekt vi hentar ut
Effektivitet ved ulike operasjonar
![Page 10: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/10.jpg)
7.8 Mangekanter
Vi kan bruke array til å tegne komplekse former
Metoder i Graphics-klassen drawPolygon()
Array eller objekt av Polygon-klassen som parameter
drawPolyline()
![Page 11: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/11.jpg)
7.9 Mouse events Ulike events (hendingar) med mus
Vi deler opp i Mouse Events Pressed Released Clicked Entered Exited
og Mouse Motion Events Moved Dragged
![Page 12: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/12.jpg)
Mouse events To ulike interface vi kan implementere
for å reagere på bruk av mus MouseListener MouseMotionListener
Vi går gjennom Dots og RubberLines Dots – vi må tegne alt på nytt om vi vil ta
vare på “gammal” informasjon RubberLines – tegne som respons på at
musa flyttar seg
![Page 13: Kapittel 7](https://reader036.vdocuments.pub/reader036/viewer/2022082417/5681321c550346895d987d44/html5/thumbnails/13.jpg)
7.10 Tastetrykk
Vi kan også reagere på tastetrykk Implementere KeyListener Felles for listener-interfaces er at
vi må implementere tomme metoder for det vi ikkje bryr oss om å reagere på