Junior — Middle
À quels moments l'initialisation de Stream se produit-elle lors de l'utilisation de l'API Stream?
sobes.tech IA
Réponse de l'IA
L'initialisation d'un Stream en Java se produit au moment de l'appel à une opération terminale. Jusqu'à ce moment, les opérations sur le Stream sont paresseuses (lazy) et ne s'exécutent pas.
C'est-à-dire que, lorsque vous créez un Stream et appliquez des opérations intermédiaires (par exemple, filter(), map()), elles ne font que former une chaîne de traitement, mais ne lancent pas de calculs.
Exemple:
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Rien ne se passe ici
List<String> result = stream.collect(Collectors.toList()); // Opération terminale
// Le traitement des éléments se produit ici
Ainsi, le Stream est initialisé et commence à traiter les données uniquement lors de l'appel à une opération terminale, comme collect(), forEach(), reduce(), etc.