Leçon 49 : Approfondissement de la Java Streams API
La Streams API (Java 8+) est l'une des fonctionnalités les plus puissantes pour traiter des séquences de données (collections ou tableaux) dans un style fonctionnel et déclaratif.
1. Qu'est-ce qu'un Stream ?
Un stream est une séquence d'éléments qui prend en charge des opérations d'agrégation séquentielles et parallèles. Crucialement, un stream :
- N'est pas une structure de données : Il ne stocke pas de données ; il achemine les données d'une source (comme une List).
- Est fonctionnel : Les opérations ne modifient pas les données sources.
- Est paresseux (lazy) : Les opérations ne sont exécutées que lorsqu'une opération terminale est appelée.
2. Structure d'un pipeline de Stream
Un pipeline de stream se compose de trois parties :
- Source : Une collection, un tableau ou une ressource I/O (
list.stream()). - Opérations intermédiaires : Transforment le stream et retournent un nouveau stream (ex:
filter,map,sorted). Celles-ci sont paresseuses. - Opération terminale : Produit un résultat ou un effet secondaire (ex:
forEach,collect,reduce,count). Cela déclenche l'exécution.
3. Opérations intermédiaires de base
filter(): Sélectionne les éléments correspondant à une condition donnée (Predicate).map(): Transforme chaque élément en une nouvelle valeur (Function).sorted(): Trie les éléments.
java
List
List
System.out.println(result); // Sortie : [APPLE, BANANA]
4. L'opération reduce()
reduce() combine tous les éléments du stream pour produire un résultat unique (ex: somme, produit, concaténation).
java
List