(Microsoft PowerPoint - Java f\366rel\344sning 4 A

Dagens föreläsning, kap 12
Vektorer
(Väldigt) lite om interface
wrapperklasser
LinkedList
ArrayList
Karlstads universitet, Johan
Öfverberg
Vektorer (arrayer)
Kan deklareras på två sätt
– datatyp[] namnPåVektorn= new datatyp[storlek];
– datatyp namnPåVektorn[]= new datatyp[storlek];
– int vektor[]=new int[10];
Vektorn kan initieras när den skapas
– int vekt[]={10,24,33,42,19,64};
1:a index är alltid 0 och sista är alltid (N-1)
Karlstads universitet, Johan
Öfverberg
Programexempel vektor
Random r=new Random();
int vektor[]=new int[10];
int vekt[]={10,24,33,42,19,64};
for (int i=0;i<10;i++){
vektor[i]=r.nextInt(40);
System.out.print(vektor[i]+" ");
}
System.out.println("");
for (int i=0;i<vekt.length;i++){
System.out.print(vekt[i]+" ");
}
Utskrift:
37 16 4 29 22 3 39 27 14 4
10 24 33 42 19 64
Karlstads universitet, Johan
Öfverberg
Karlstads Universitet, Johan Öfverberg
1
Flerdimensionella vektorer
Är egentligen inget konstigt, bara svårt att
hålla reda på när det blir för många
int matris[][]=new int [rader][kolumner];
int fler[][][][]=new int [3][4][6][2];
Detta är inte något ni skall använda för lab3.
Karlstads universitet, Johan
Öfverberg
interface
Om du lovar att…
Så får du…
Genom att implementera ett interface får
man tillgång till gemensamma metoder och
attribut
Ex: public class Test implements EttInterface
List är ett interface som implementeras av
bla LinkedList och ArrayList
Karlstads universitet, Johan
Öfverberg
wrapperklasser
Alla primitiva datatyper har en motsvarande klass,
denna klass har samma namn men med inledande
versal
Undantagen är:
– Integer – int
– Character – char
Dessa är till för att allt skall kunna lagras som
objekt i Java.
Ex. Boolean, Double, Float mfl.
Karlstads universitet, Johan
Öfverberg
Karlstads Universitet, Johan Öfverberg
2
LinkedList
En lista som lagrar objekt
Har metoder för att lägga till, ta bort mm
Bör (skall) skapas för en viss typ av objekt
Ex:
– LinkedList<String> minLista=null;
– minLista= new LinkedList<String>();
Karlstads universitet, Johan
Öfverberg
LinkedList
Ett inte så bra exempel:
LinkedList lista=new LinkedList();
lista.add("Hej");
Integer tal=new Integer(42);
lista.add(tal);
Test t=new Test();
lista.add(t);
while(!lista.isEmpty()){
System.out.println(lista.getFirst().toString());
lista.removeFirst();
}
Karlstads universitet, Johan
Öfverberg
LinkedList av String
En lista med strängar:
LinkedList<String> lista=new LinkedList<String>();
lista.add("Hej");
//Integer tal=new Integer(42);
//lista.add(tal);
lista.add(" på ");
String s="dig";
lista.add(s);
while(!lista.isEmpty()){
System.out.print(lista.getFirst().toString());
lista.removeFirst();
}
Karlstads universitet, Johan
Öfverberg
Karlstads Universitet, Johan Öfverberg
3
Några användbara metoder i LinkedList
.addFirst(obj), .addLast(obj), .add(obj)
– Lägger till ett objekt först resp sist
.gerFirst(), .getLast()
– Returnerar det 1:a resp sista objektet
.isEmpty()
– Returnerar true om listan är tom
.clear()
– Tömmer hela listan
Karlstads universitet, Johan
Öfverberg
ArrayList, ett exempel
ArrayList<String> lista=null;
lista=new ArrayList<String>();
for(int i=0;i<10;i++){
lista.add("Hej"+ i);
}
while(!lista.isEmpty()){
System.out.print(lista.get(0)+" ");
lista.remove(0);
// OBs, 1:a försvinner!
}
Karlstads universitet, Johan
Öfverberg
Karlstads Universitet, Johan Öfverberg
4