Junior — Middle
Puteți explica ce înseamnă termenul 'operație non-terminală' atunci când lucrați cu fluxuri de date în API-ul Stream?
sobes.tech AI
Răspuns de la AI
În API-ul Stream Java, operațiile sunt împărțite în operații terminale și non-terminale (intermediare).
O operație non-terminală este o operație care returnează un nou flux (Stream) și nu pornește procesarea datelor imediat. Servește pentru construirea unui lanț de transformări, de exemplu, filtrare, mapare, sortare.
Exemple de operații non-terminale:
- filter()
- map()
- sorted()
- distinct()
Aceste operații sunt leneșe: nu se execută până când nu este apelată o operație terminală, de exemplu, forEach(), collect(), count().
Exemplu:
List<String> list = Arrays.asList("a", "bb", "ccc");
list.stream()
.filter(s -> s.length() > 1) // non-terminal
.map(String::toUpperCase) // non-terminal
.forEach(System.out::println); // terminal
Astfel, operațiile non-terminale permit construirea unui lanț de transformări, iar operația terminală pornește execuția.