Sobes.tech
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.