Enkla typer

Följande klass skapar ett antal variabler av olika typer, och skriver sedan ut några av dem.

public class SimpleTypes { public static void main(String[] args) { int a = 10; int b = 4; int c = a / b; System.out.println(c); double x = 10; double y = 4; double z = x / y; System.out.println(z); boolean p = true; boolean q = false; boolean r = p && q; boolean s = p || q; System.out.println(r); System.out.println(s); } }

  1. Vad skriver programmet ut?
  2. Vad heter filen som ovanstående kod är tagen från?
     
 

Villkorssatser

Följande program utför ett antal villkorssatser (if-satser). Beroende på hur dessa satser utvärderas skrivs olika saker ut.

public class If { public static void main(String[] args) { int a = 100; int b = 400; if (a < b) { System.out.println("a är mindre än b"); } else { System.out.println("första är falsk"); } if (a > b) { System.out.println("a är större än b"); } else { System.out.println("andra är falsk"); } if (a != b) { System.out.println("a är skiljt från b"); } else { System.out.println("tredje är falsk"); } } }

  1. Vad heter filen som ovanstående kod är tagen från?
     
  2. Vad skriver programmet ut?
 

Vektorer och Loopar

public class Loop { public static void main(String[] args) { String[] rargs = new String[args.length]; for (int i = 0; i < args.length; i++) { System.out.println(args[i]); rargs[args.length - 1 - i] = args[i]; } System.out.println(); for (int i = 0; i < rargs.length; i++) { System.out.println(rargs[i]); } System.out.println(); String[] argsPlusLast = appendString(args, "sist"); for (int i = 0; i < argsPlusLast.length; i++) { System.out.println(argsPlusLast[i]); } } public static String[] appendString(String[] ss, String s) { String[] newSs = new String[ss.length + 1]; for (int i = 0; i < ss.length; i++) { newSs[i] = ss[i]; } newSs[ss.length] = s; return newSs; } }

 
  1. Givet att vi kör programmet enligt följande:
    $ java Loop ett två tre
    vad skriv ut?
  2. Titta närmare på nedanstående rad.
    public static String[] appendString(String[] ss, String s) {
    Identifiera (ringa in ovan) vad som svarar mot följande termer:
    1. Returtyp
    2. Metodnamn
    3. Argumentlista
    Hur skulle du läsa ut returtypen på svenska (techno-anglifierad svenska går också bra)?
 

Listor och mängder

Givet att vi har följande två klasser (där den ena använder den andra)...

import java.util.List; import java.util.Set; import java.util.LinkedList; import java.util.TreeSet; public class ListSet { private List list; private Set set; public ListSet() { list = new LinkedList(); set = new TreeSet(); } public void addToken(String token) { list.add(token); set.add(token); } public void summarize() { System.out.println(set.size() + " / " + list.size()); System.out.println(set.size() / list.size()); } }

import java.util.Scanner; public class ListSetTest { public static void main(String[] args) { Scanner s = new Scanner(System.in); ListSet ls = new ListSet(); while (s.hasNext()) { ls.addToken(s.next()); } ls.summarize(); } }

 
  1. Givet att vi kör programmet ListSetTest och matar följande till standard input:
    vänster , höger . vänster , höger . vänster . vänster .
    Vad skrivs ut?
  2. Om du skulle vilja använda HashSet istället för TreeSet, vilka förändringar skulle du behöva göra? (Svara genom att ändra i programlistningarna ovan.)
  3. Om du vill spara plats i ListSet, hur skulle du kunna omformulera import-satserna?