Enkla typer

public class SimpleMath { public static void main(String[] args) { int a = 10; int b = 4; System.out.println(a + b); System.out.println(a - b); System.out.println(a * b); System.out.println(a / b); double x = 10; double y = 4; System.out.println(x + y); System.out.println(x - y); System.out.println(x * y); System.out.println(x / y); } }

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

Villkorssatser

public class If { public static void main(String[] args) { int a = 100; int b = 400; int c = 100; if (a < b && a <= c) { System.out.println("1"); } else { System.out.println("2"); } if (a > b || b > c) { System.out.println("3"); } else { System.out.println("4"); } if (a != b) { System.out.println("5"); } else { System.out.println("6"); } } }

  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) { for (int i = 0; i < args.length; i++) { System.out.println(args[i]); } System.out.println(); String[] args2 = shift(args, "one more"); for (int i = 0; i < args2.length; i++) { System.out.println(args2[i]); } System.out.println(); String[] args3 = shift(args2, "last one"); for (int i = 0; i < args3.length; i++) { System.out.println(args3[i]); } } public static String[] shift(String[] strings, String s) { String newStrings[] = new String[strings.length]; for (int i = 1; i < newStrings.length; i++) { newStrings[i - 1] = strings[i]; } newStrings[newStrings.length - 1] = s; return newStrings; } }

  1. Titta närmare på nedanstående rad.
    public static String[] shift(String[] strings, String s) {
    Hur skulle du läsa ut returtypen på svenska (techno-anglifierad svenska går också bra)?
  2.  
  3. Vad skrivs ut om programmet körs såhär:
    $ java Loop a b c

Listor och mängder

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

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

 
import java.util.List; import java.util.Set; import java.util.ArrayList; import java.util.HashSet; public class ListSet { private List list; private Set set; public ListSet() { list = new ArrayList(); set = new HashSet(); } 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()); System.out.println((double)set.size() / list.size()); } public void print() { System.out.println("List contains:"); for (String s : list) { System.out.println(s); } System.out.println(); System.out.println("Set contains:"); for (String s : set) { System.out.println(s); } System.out.println(); } }

 
  1. Givet att vi kör programmet ListSetTest och matar följande till standard input:
    hej hej hemskt mycket hej
    Vad skrivs ut?
    Det är omöjligt att sia om vilken ordning elementen i en HashSet kommer, så vilken ordning du väljer att skriva ut dem i spelar ingen roll.
  2. Om du skulle vilja använda LinkedList istället för ArrayList, vilka förändringar skulle du behöva göra? (Svara genom att ändra i programlistningarna ovan.)