← CertifHub
Programmation 1 juin 2026 · 7 min · par L’équipe CertifApp

Programmation fonctionnelle : lambdas et streams en Java

Map, filter, reduce : le style fonctionnel rend le code plus clair. Concepts et exemples Java.

Depuis Java 8, le style fonctionnel coexiste avec l’objet. Les certifications l’évaluent largement — et il rend beaucoup de code plus lisible.

Les lambdas et les interfaces fonctionnelles

Une lambda est une fonction anonyme qui implémente une interface à une seule méthode (Function, Predicate, Consumer…) :

Predicate<Integer> estPair = n -> n % 2 == 0;
Function<String, Integer> longueur = String::length; // référence de méthode

Les streams : map / filter / reduce

Un stream enchaîne des opérations sur une séquence, de façon déclarative :

List<String> noms = List.of("Ana", "Bob", "Cléa", "Dan");
List<String> result = noms.stream()
    .filter(n -> n.length() > 3)   // garde "Cléa"
    .map(String::toUpperCase)       // -> "CLÉA"
    .sorted()
    .toList();

La réduction agrège vers une seule valeur :

int total = List.of(1, 2, 3, 4).stream()
    .reduce(0, Integer::sum); // 10

Paresse et court-circuit

Les opérations intermédiaires (map, filter) sont paresseuses : rien ne s’exécute tant qu’il n’y a pas d’opération terminale (toList, count, reduce). C’est ce qui permet l’optimisation et le court-circuit (findFirst).

Le piège classique

Un stream ne se réutilise pas : une fois consommé, il est clos. Et évite les effets de bord dans une lambda (modifier une variable externe) — c’est contraire à l’esprit fonctionnel, et souvent un piège d’examen.

Envie d’aller plus loin avec CertifApp ?

Découvrir CertifApp