Sobes.tech
Junior — Middle

Pouvez-vous expliquer ce que signifie le terme 'opération non terminale' lors de l'utilisation des flux de données dans l'API Stream?

sobes.tech IA

Réponse de l'IA

Dans l’API Stream de Java, les opérations sont divisées en opérations terminales et non terminales (intermédiaires).

Une opération non terminale est une opération qui renvoie un nouveau flux (Stream) et ne lance pas le traitement des données immédiatement. Elle sert à construire une chaîne de transformations, par exemple, filtrage, mappage, tri.

Exemple d’opérations non terminales :

  • filter()
  • map()
  • sorted()
  • distinct()

Ces opérations sont paresseuses : elles ne s’exécutent pas tant qu’une opération terminale n’est pas appelée, par exemple, forEach(), collect(), count().

Exemple :

List<String> list = Arrays.asList("a", "bb", "ccc");

list.stream()
    .filter(s -> s.length() > 1) // non terminale
    .map(String::toUpperCase)    // non terminale
    .forEach(System.out::println); // terminale

Ainsi, les opérations non terminales permettent de construire une chaîne de transformations, et la terminale lance l’exécution.