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