Adloun

programmation Java (école d'ingénieur) · Chapitre 13 · Application directe du cours

Lire des lambdas

Lambdas et streams · niveau 1 (application)

Énoncé

Prévoir l'affichage de ce fragment, ligne par ligne, puis le vérifier.


Predicate<String> vide = s -> s.isEmpty();
Function<Integer, Integer> carre = x -> x * x;
BiFunction<String, Integer, String> coller = (s, n) -> s + "-" + n;
Supplier<String> salut = () -> "salut";
Predicate<Integer> multipleDe3 = n -> n % 3 == 0;

System.out.println(vide.test("") + " " + vide.negate().test(""));
System.out.println(carre.apply(7) + " " + carre.andThen(carre).apply(2));
System.out.println(coller.apply("ab", 3) + " " + salut.get());
System.out.println(multipleDe3.or(n -> n > 100).test(101) + " "
                 + multipleDe3.and(n -> n > 100).test(99));
Function<Integer, Integer> f = x -> x + 3;
System.out.println(f.andThen(carre).apply(1) + " " + f.compose(carre).apply(1));

Corrigé


true false
49 16
ab-3 salut
true false
16 4
  • La chaîne vide est vide ; la négation du prédicat répond donc false.
  • ; carre.andThen(carre) élève au carré deux fois : .
  • coller.apply("ab", 3) vaut ab-3 ; un Supplier n'a pas d'argument.
  • n'est pas multiple de mais dépasse : le « ou » est vrai. est multiple de mais ne dépasse pas : le « et » est faux.
  • f.andThen(carre) applique d'abord f : . f.compose(carre) applique d'abord carre : .

100 % gratuit

La suite du chapitre est sur Adloun

Exercice suivant et tuteur

Sans compte : le cours et le premier QCM. Exercices et tuteur : inscription gratuite en 30 secondes, sans carte bancaire.

Le cours du chapitre · Tous les exercices du chapitre

Exercice suivant et tuteur →