Oppgave 2
Integer[] a = Tabell.randPermInteger(10); Liste<Integer> liste = new TabellListe<>(a); Integer maks = Beholdere.maks(liste,Comparator.naturalOrder()); Integer min = Beholdere.maks(liste,Comparator.reverseOrder()); System.out.println(maks + " " + min);
Oppgave 3
I metoden under antas det at det ikke er null-verdier i itererbar
.
Hvis det tillates null-verdier må koden utvides noe.
public static int frekvens(Iterable<?> itererbar, Object o) { int antall = 0; for (Object x : itererbar) if (x.equals(o)) antall++; return antall; }
Oppgave 4
public static <T> int maks(Liste<T> liste, Comparator<? super T> c) { if (liste.tom()) throw new NoSuchElementException("listen er tom"); Iterator<T> it = liste.iterator(); int m = 0; T maksverdi = it.next(); // finnes siden listen ikke er tom for (int i = 1; it.hasNext(); i++) { T verdi = it.next(); if (c.compare(verdi,maksverdi) > 0) { m = i; maksverdi = verdi; } } return m; }