Index

Related

  • Java MOC
  • e di Programmazione (class)]]

TLDR


Introduzione

Un Stream in Java può essere visto come una sequenza di dati. Un Stream non memorizza dati e, in questo senso, non è una struttura dati che memorizza elementi. Piuttosto, rappresenta una sequenza di elementi e funzioni di supporto che possono essere utilizzate per eseguire operazioni su quegli elementi.

Concetti Chiave

🔥 Nota: Al contrario delle Collection, uno Stream non memorizza né modifica i dati della sorgente, ma opera su di essi

Stram Pipeline

Una pipeline di stream è una sequenza di operazioni di stream, composta da:

  • Sorgente: che può essere una collezione, un array, un generatore di numeri, ecc.
  • Operazioni intermedie: che trasformano un stream in un altro stream.
  • Un operazione terminale: (che produce un risultato o un effetto collaterale, come count o forEach).

Operazioni intermedie vs Operazioni terminali

Le operazioni intermedie restituiscono un altro stream su cui continuare a lavorare.

come filter e map restituiscono un nuovo stream. Sono sempre lazy, eseguendo un’operazione su un elemento dello stream solo quando necessario.

Le operazioni terminali come forEach, count, collect, ecc., producono un risultato o un effetto collaterale e terminano la pipeline. [!note] Stream sequenziali vs Stream paralleli

Un stream sequenziale ha un unico elemento corrente, elaborato in modo indipendente dagli altri.

Un stream parallelo è in grado di suddividere il suo lavoro in più parti, elaborando più elementi contemporaneamente.