Presentation laddar. Vänta.

Presentation laddar. Vänta.

Föreläsning 10 Klasserna –Vector (kap 6.2) –StringTokenizer (kap 6.3) Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Iteration.

Liknande presentationer


En presentation över ämnet: "Föreläsning 10 Klasserna –Vector (kap 6.2) –StringTokenizer (kap 6.3) Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Iteration."— Presentationens avskrift:

1 Föreläsning 10 Klasserna –Vector (kap 6.2) –StringTokenizer (kap 6.3) Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Iteration och rekursion (kap 12)

2 Vector Används som en vektor men måste importeras: import java.util.Vector; Fördelar: –Längden utökas automatiskt när man lägger in ett nytt element. –Lätt att stoppa in element var som helst. Nackdelar –Ineffektivt. –Varje element blir av klassen Object så man måste omvandla framtagna element till rätt klass.

3 Metoder i klassen Vector addElement(Object element) –Lägger till ett element sist. removeElement(Object element) –Tar bort ett visst element. elementAt(int index) –Returnerar det element som finnspå plats index firstElement() och lastElement() –Returnerar första resp sista elementet. size() –Returnerar antal element.

4 Exempel Vector balls = new Vector(); Ball b; for (int i = 0; i < 22; i++) { b = new Ball(100, 100, 5); balls.addElement(b); } b = (Ball) balls.elementAt(16); stdout.println(”Antal: ” + balls.size());

5 StringTokenizer Kan dela upp en sträng i delar (tokens), t ex ta fram orden ur en mening. Normalt delas strängen vid mellanslag, tab och radbyte. Man kan också ange vilka tecken strängen ska delas vid. Importeras med: import java.util.StringTokenizer;

6 Konstruktorer StringTokenizer(String str) –str är strängen som ska delas upp. StringTokenizer(String str, String skiljetecken) –skiljetecken anger vilka tecken str ska delas vid. StringTokenizer(String str, String skiljetecken, boolean rubbet) –rubbet ska vara true om även skiljetecknen ska returneras.

7 Metoder hasMoreTokens() –Returnerar true om det finns några tokens kvar att plocka fram ur strängen. nextToken() –Returnerar nästa token. countTokens() –Räknar ut hur många tokens det finns i strängen.

8 Exempel String mening; StringTokenizer orden; mening = stdin.readLine(); // Skapar en ny tokenizer orden = new StringTokenizer(mening); // Skriver ut första ordet stdout.println(orden.nextToken()); // Skriver ut andra ordet stdout.println(orden.nextToken());

9 Filer Enda sättet att spara data mellan programkörningar är att lagra dessa på fil. På kursbiblioteket finns två klasser som gör det enklare att läsa från och skriva på fil. –SimpleTextFileReader –SimpleTextFileWriter Om du vill använda någon av klasserna kan du kopiera den från kursbiblioteket och lägga den sist i ditt program.

10 SimpleTextFileReader // Öppna fil för läsning SimpleTextFileReader in = new SimpleTextFileReader(”infil.txt”); String str; // Läs in alla rader och skriv ut på skärmen while ((str = in.readLine())!= null) { System.out.println(str); } in.close();

11 SimpleTextFileWriter // Öpnna fil för utskrift SimpleTextFileWriter out = new SimpleTextFileWriter (”utfil.txt”); out.println(”Detta skrivs på filen!”); System.out.println(”Detta på skärmen”); // Stäng filen out.close();

12

13 Iteration Iteration betyder upprepning. Här innebär det att utföra något med hjälp av en slinga: –for-slinga –while-slinga Exempel: 5! = 1*2*3*4*5

14 Fakultet-iterativt import java.io.*; class FakultetIter { public static void main(String[] args) { System.out.println(fakultet(5)); } //Metoden main public static int fakultet(int n) { int resultat = 1; for (int i=1; i<=n; i++) { resultat = resultat*i; } return resultat; } // Metoden fakultet }

15 Rekursion Att lösa ett problem genom att först lösa en mindre variant av samma problem. Exempel: 5! = 5*4! Man får en metod som anropar sig själv. Metoden måste veta när den ska sluta, dvs det måste finnas ett basfall, t ex 0! = 1

16 Fakultet - rekursivt import java.io.*; class FakultetRek { public static void main(String[] args) { System.out.println(fakultet(5)); } //Metoden main public static int fakultet(int n) { if (n==0) return 1; else return n*fakultet(n-1); } // Metoden fakultet }


Ladda ner ppt "Föreläsning 10 Klasserna –Vector (kap 6.2) –StringTokenizer (kap 6.3) Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Iteration."

Liknande presentationer


Google-annonser