Junior
Quelle est l'idée principale de l'API Stream en Java?
sobes.tech IA
Réponse de l'IA
L'idée principale de l'API Stream est de fournir une manière déclarative de traiter des collections de données. Au lieu d'une approche impérative itérative avec une gestion explicite des boucles et des états, les streams permettent de décrire *ce qu'*il faut faire avec les données (filtrage, transformation, agrégation), en laissant l'implémentation comment le faire à l'API.
Concepts clés :
- Immutabilité : Les streams ne modifient pas la source de données d'origine. Les opérations sur les streams créent de nouveaux streams ou résultats.
- Évaluation paresseuse : Beaucoup d'opérations sur les streams, comme
filter()etmap(), sont intermédiaires. Elles ne s'exécutent pas tant qu'une opération terminale, commecollect()ouforEach(), n'est pas appelée. Cela permet d'optimiser l'exécution. - Pipeline : Les opérations sur les streams peuvent être combinées en un pipeline. Chaque élément passe par le pipeline de manière séquentielle ou parallèle.
- Traitement parallèle : Les streams sont conçus pour faciliter le traitement parallèle des données, souvent avec peu de modifications du code (
parallelStream()).
Avantages :
- Code plus lisible et expressif pour des opérations complexes sur des collections.
- Facilité de parallélisation.
- Suppression du code boilerplate lié aux itérations.
// Exemple : Filtrage et transformation d'une liste de chaînes
List<String> noms = Arrays.asList("Alice", "Bob", "Charlie", "David");
List<Integer> longueurs = noms.stream()
.filter(nom -> nom.startsWith("A")) // Opération intermédiaire
.map(String::length) // Opération intermédiaire
.collect(Collectors.toList()); // Opération terminale
// longueurs contiendra [5]