Hamed Cédric SYLLA

Maîtriser l’API Stream en Java : écrire du code élégant et efficace

🚀 Maîtriser l’API Stream en Java : écrire du code élégant et efficace

Introduction

Depuis Java 8, l’API Stream a transformé la manière dont les développeurs manipulent les collections. Elle introduit un style de programmation fonctionnel et déclaratif, permettant d’écrire un code plus concis, lisible, et performant.
Dans cet article, découvrons ensemble l’essentiel de cette API à travers des exemples simples et parlants.

🔹 Qu’est-ce qu’un Stream ?

Un Stream est une suite d’éléments générée à partir d’une source (liste, tableau, fichier, etc.) sur laquelle on applique des opérations successives (filtrage, transformation, agrégation…).
Contrairement aux collections, un stream ne stocke pas de données et ne peut être parcouru qu'une seule fois.

🔹 Création d’un Stream

On crée un Stream à partir d'une liste. Ce flux peut ensuite être filtré, trié, transformé sans modifier la liste d’origine.

image

🔹 Filtrage & transformation

  • .filter(...) sélectionne les prénoms commençant par I

  • .map(...) transforme les prénoms en majuscules

  • .forEach(...) affiche chaque prénom sélectionné

image

🔹 Réduction (reduce)

La méthode .reduce() accumule les éléments pour produire un seul résultat — ici la somme. C’est une alternative élégante aux boucles for.

image

🔹 Groupement avec Collectors

Avec Collectors.groupingBy, on regroupe les prénoms selon leur première lettre. Cela produit une Map où chaque clé est une lettre, et chaque valeur une liste de prénoms.

image

✅ Bonnes pratiques

  • 🔹 Utilisez .limit() et .skip() pour la pagination
    Cela permet de traiter uniquement une portion des données, utile pour afficher une page de résultats ou économiser des ressources.
  • 🔹 Placez toujours .filter() avant .map()
    Filtrer d’abord permet de réduire le nombre d’éléments à transformer, améliorant ainsi les performances.
  • 🔹 Évitez les effets de bord dans map() et filter()
    Ces méthodes doivent rester pures : ne pas modifier d'état externe, ni écrire dans la console, ni interagir avec une base de données.

Conclusion

L’API Stream de Java permet d’écrire du code plus expressif, lisible et performant. Que ce soit pour filtrer, transformer, regrouper ou réduire des données, elle s’adapte parfaitement aux besoins du développement moderne, notamment dans les projets Spring Boot ou les traitements de données.

Nous avons volontairement exploré ici les opérations les plus utilisées pour rester accessibles et concrets.
Notez toutefois qu’il existe de nombreuses autres méthodes dans l’API Stream (comme flatMap(), peek(), distinct(), sorted(), etc.) qui mériteraient un article à part entière.

👉 À vous maintenant d’explorer, de pratiquer et d’intégrer les Streams dans vos projets pour un Java plus moderne et élégant.

Leave a Comment