Løsningsforslag - oppgaver i Avsnitt 1.9.8


Oppgave 1

  List<String> liste = navnstrøm.collect(Collectors.toCollection(LinkedList::new));

Oppgave 2

  Set<String> mengde = navnstrøm.collect(Collectors.toSet());
  System.out.println(mengde.getClass().getName());  // java.util.HashSet
  TreeSet<String> mengde = navnstrøm.collect(Collectors.toCollection(TreeSet::new));
  PriorityQueue<String> kø = navnstrøm.collect(Collectors.toCollection(PriorityQueue::new));
  while (!kø.isEmpty()) System.out.print(kø.poll() + " ");
  // Utskrift: Arne Jasmin Kari Margrethe Per Petter

Oppgave 3

  String s = navnstrøm.collect(Collectors.joining(", ", "[", "]"));
  System.out.println(s);  // [Per, Kari, Arne, Petter, Margrethe, Jasmin]
  public static String navnlengde(String[] navn, int lengde)
  {
    return Arrays.stream(navn)
      .filter(x -> x.length() == lengde)
      .collect(Collectors.joining(", ", "[", "]"));
  }

Oppgave 4

  Student[] student = new Student[5];  // en Student-tabell

  student[0] = new Student("Kari","Svendsen","2AA");        // Kari Svendsen
  student[1] = new Student("Boris","Zukanovic","2IA");      // Boris Zukanovic
  student[2] = new Student("Ali","Kahn","2IA");             // Ali Kahn
  student[3] = new Student("Azra","Zukanovic","2IA");       // Azra Zukanovic
  student[4] = new Student("Kari","Pettersen","2AA");       // Kari Pettersen

  Map<String,List<Student>> map =
    Stream.of(student).collect(Collectors.groupingBy(Student::klasse));

  for (String klasse : map.keySet())
    System.out.println("Klasse " + klasse + ": " + map.get(klasse) + " ");

  // Klasse 2AA: [Kari Svendsen 2AA, Kari Pettersen 2AA] 
  // Klasse 2IA: [Boris Zukanovic 2IA, Ali Kahn 2IA, Azra Zukanovic 2IA]