Astuce Java : Optimisez vos streams - Placez .filter() avant .map() pour éviter des traitements inutiles et améliorer les performances.
----
PS : Vous avez un besoin en architecture backend Java robuste ?
Réservez un rendez-vous : https://lnkd.in/ecRArCmt
Automaticien de tests / Consultant (Applications web / Testing Confirmé / Développeur web) - Squad Hors Mobilité- Siège Social Maif Niort.
4 months ago
Oui, tout à fait ! Mettre .filter() avant .map() peut faire une grande différence en termes de performance, surtout avec des volumes de données importants.
Voici pourquoi :
Pourquoi c’est plus efficace :
1. Réduction du nombre d’éléments à transformer.
2. Utilisation optimisée de la mémoire et du CPU.
3. Parallélisme plus efficace :
Si vous utilisez .parallelStream(), l’ordre des opérations a un impact encore plus important.
Exemple illustratif :
Supposons qu’on a une liste de 1 million de noms, et qu’on veut transformer en majuscules uniquement ceux qui commencent par “A”.
Moins efficace :
names.stream()
.map(String::toUpperCase) // transformation sur tous les éléments
.filter(s -> s.startsWith("A")) // puis filtrage
.toList();
Plus efficace :
names.stream()
.filter(s -> s.startsWith("A")) // d’abord on filtre
.map(String::toUpperCase) // puis on transforme uniquement les bons
.toList();
Ce changement peut réduire significativement le temps de traitement.