Oppgave 1
Liste<Integer> liste = new EnkeltLenketListe<>(); for (int i = 1; i <= 10; i++) liste.leggInn(i); Iterator<Integer> iterator = liste.iterator(); liste.fjern(0); // fjerner verdi med indeks 0 System.out.println(iterator.next());
Oppgave 2
Liste<Integer> liste = new EnkeltLenketListe<>(); for (int i = 1; i <= 10; i++) liste.leggInn(i); System.out.println(liste); // fjerner partallene liste.fjernHvis(x -> x % 2 == 0); // skriver ut liste.forEach(x -> System.out.print(x + " "));
Oppgave 3
public boolean fjernHvis(Predicate<? super T> predikat) { Objects.requireNonNull(predikat, "null-predikat!"); Node<T> p = hode, q = null; int antallFjernet = 0; while (p != null) { if (predikat.test(p.verdi)) { antallFjernet++; endringer++; if (p == hode) { if (p == hale) hale = null; hode = hode.neste; } else if (p == hale) q.neste = null; else q.neste = p.neste; } q = p; p = p.neste; } antall -= antallFjernet; return antallFjernet > 0; }
Oppgave 4
public void forEach(Consumer<? super T> handling) { Objects.requireNonNull(handling, "handling er null!"); Node<T> p = hode; while (p != null) { handling.accept(p.verdi); p = p.neste; } }
Oppgave 5
public void forEachRemaining(Consumer<? super T> handling) { Objects.requireNonNull(handling, "handling er null!"); while (p != null) { handling.accept(p.verdi); p = p.neste; } }