Sobes.tech
Senior

Cosa sono i metodi intermedi e terminali negli stream?

sobes.tech AI

Risposta dell'AI

Nell'API Stream di Java, i metodi sono divisi in intermedi e terminali.

  • Metodi intermedi restituiscono un nuovo stream e consentono di costruire una catena di operazioni. Sono pigri, cioè non vengono eseguiti immediatamente, ma solo quando viene chiamato un metodo terminale. Esempi: filter(), map(), sorted(), distinct().

  • Metodi terminali avviano l'elaborazione dello stream e restituiscono un risultato (non uno stream). Dopo la loro chiamata, la catena si termina. Esempi: collect(), forEach(), reduce(), count().

Esempio:

List<String> names = List.of("Anna", "Bob", "Charlie", "David");

long count = names.stream()  // metodo intermedio stream()
    .filter(name -> name.length() > 3)  // metodo intermedio filter()
    .count();  // metodo terminal count()

System.out.println(count);  // Stampa il numero di nomi con più di 3 caratteri