Oppgave 1
public static String navnlengde(String[] navn, int lengde) { StringJoiner sj = new StringJoiner(", ", "[", "]"); Arrays.stream(navn) .filter(x -> x.length() == lengde) .forEach(x -> sj.add(x)); return sj.toString(); }
Oppgave 2
p.negate().or(q).negate()
svarer til
¬(¬p
∨ q
) = p
∧ ¬q
.
Siden p
er sann for tall > 5 og ¬q
er sann for tall ≥ 10, blir dette
sant for tall ≥ 10.
IntConsumer utskrift = x -> System.out.print(x + " "); int[] a = {7, 3, 6, 10, 5, 4, 12, 17, 8, 16}; // en samling heltall IntPredicate p = x -> x > 5, q = x -> x < 10; Arrays.stream(a).filter(p.negate().or(q).negate()).forEach(utskrift); // Utskrift: 10 12 17 16