Junior — Middle
À quel moment le traitement en flux avec la collection est-il lancé?
sobes.tech IA
Réponse de l'IA
L'exécution du traitement en flux (stream) en Java se produit au moment de l'appel d'une opération terminale. Jusqu'à ce moment, toutes les opérations intermédiaires (map, filter, sorted, etc.) sont paresseuses et ne s'exécutent pas.
Par exemple :
List<String> list = Arrays.asList("a", "b", "c");
Stream<String> stream = list.stream()
.filter(s -> s.startsWith("a"))
.map(String::toUpperCase);
// Ici, le flux n'est pas encore lancé
List<String> result = stream.collect(Collectors.toList()); // Opération terminale — lancement du traitement
Ainsi, le traitement en flux démarre lors de l'appel d'une opération terminale, comme collect(), forEach(), reduce(), count() et autres.