Løsningsforslag - oppgaver i Avsnitt 5.2.14


Oppgave 1

  int[] a = {18,16,20,14,2,10,4,8,12,6};
  TreeSet<Integer> tre = new TreeSet<>();
  for (int k : a) tre.add(k);

  SortedSet<Integer> s = tre.headSet(10);

  System.out.println(tre);
  System.out.println(s);

  // Utskrift:
  // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
  // [2, 4, 6, 8]

Oppgave 2

  int[] a = {18,16,20,14,2,10,4,8,12,6};
  TreeSet<Integer> tre = new TreeSet<>();
  for (int k : a) tre.add(k);

  NavigableSet<Integer> s = tre.headSet(10, true);

  System.out.println(tre);
  System.out.println(s);

  // Utskrift:
  // [2, 4, 6, 8, 10, 12, 14, 16, 18, 20]
  // [2, 4, 6, 8, 10]

Oppgave 3

  int[] a = {18,16,20,14,2,10,4,8,12,6};
  TreeSet<Integer> tre = new TreeSet<>();
  for (int k : a) tre.add(k);

  NavigableSet<Integer> s = tre.headSet(10, true);

  s.pollFirst();  // fjerner den minste i s, dvs. 2
  s.pollLast();  // fjerner den største i s, dvs. 10

  System.out.println(tre);
  System.out.println(s);

  // Utskrift:
  // [4, 6, 8, 12, 14, 16, 18, 20]
  // [4, 6, 8]

Oppgave 4

  int[] a = {18,16,20,14,2,10,4,8,12,6};
  TreeSet<Integer> tre = new TreeSet<>();
  for (int k : a) tre.add(k);

  NavigableSet<Integer> s = tre.subSet(10, false, 16, true);

  System.out.println(s);

  // Utskrift:
  // [12, 14, 16]

Oppgave 5

  int[] a = {18,16,20,14,2,10,4,8,12,6};  // partallene fra 2 til 20
  TreeSet<Integer> tre = new TreeSet<>();
  for (int k : a) tre.add(k);

  int[] b = {6,1,3,9,2,10,5,8,4,7};  // heltallene fra 1 til 10

  List<Integer> liste = new LinkedList<>();
  for (int k : b) liste.add(k);

  tre.addAll(liste);  // adderer listen til treet

  System.out.println(tre);

  // Utskrift:
  // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 16, 18, 20]