lezione 03

stream api

pipeline funzionali per dati puliti e leggibili.

livello: intermedio durata: 20 min output: stream fluide badge: stream pipeline

stream

List<Integer> values = List.of(1, 2, 3);

filter

var even = values.stream()
  .filter(v -> v % 2 == 0)
  .toList();

map

var squared = values.stream()
  .map(v -> v * v)
  .toList();

collect

usa collector personalizzati per output complessi.

panoramica

In questo capitolo su stream api, pipeline funzionali per dati puliti e leggibili. L'obiettivo è trasformare i concetti in micro-pattern riutilizzabili con esempi piccoli e verificabili.

Lavora in sequenza: leggi, prova, modifica gli snippet e annota i trade-off principali (performance, leggibilità, manutenzione).

badge: stream pipeline

obiettivi

  • capire e applicare stream in uno scenario reale
  • capire e applicare filter in uno scenario reale
  • capire e applicare map in uno scenario reale
  • capire e applicare collect in uno scenario reale

scheda rapida

import java.util.List;

public class Main {
  public static void main(String[] args) {
    var dati = List.of(1, 2, 3);
    var out = dati.stream().map(x -> x * 2).toList();
    System.out.println(out);
  }
}

Adatta questo scheletro agli esempi della lezione e sostituisci i dati con il tuo dominio.

tips

  • organizza package per dominio
  • preferisci immutabilità dove possibile
  • documenta le API pubbliche
  • evita side effect in map
  • usa filter prima di map
  • attenzione a parallelStream

tip: Se il codice diventa illegibile, torna a un loop: chiarezza > stile.

mini progetto

Pipeline su ordini per calcolare totali.

  • carica lista ordini
  • filtra per stato
  • map a totale
  • collect in Map per cliente

output atteso: uno script o query ripetibile con risultati verificabili.

checklist

  • ho eseguito gli snippet e controllato l'output
  • ho annotato almeno 2 trade-off
  • ho completato il mini progetto
  • ho salvato un riepilogo personale
start a brief