Junior — Middle
Puoi spiegare cosa significa il termine 'operazione non terminale' quando si lavora con i flussi di dati nell'API Stream?
sobes.tech AI
Risposta dell'AI
Nell'API Stream di Java, le operazioni sono suddivise in terminali e non terminali (intermedie).
Un'operazione non terminale è un'operazione che restituisce un nuovo flusso (Stream) e non avvia immediatamente l'elaborazione dei dati. Serve a costruire una catena di trasformazioni, ad esempio, filtraggio, mappatura, ordinamento.
Esempi di operazioni non terminali:
- filter()
- map()
- sorted()
- distinct()
Queste operazioni sono pigre: non vengono eseguite finché non viene chiamata un'operazione terminale, ad esempio, forEach(), collect(), count().
Esempio:
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
In questo modo, le operazioni non terminali consentono di costruire una catena di trasformazioni, mentre quella terminale avvia l'esecuzione.