Sobes.tech
Junior

A cosa serve il metodo limit() negli stream?

sobes.tech AI

Risposta dell'AI

Il metodo limit(long maxSize) nell'API Stream di Java è progettato per creare un nuovo stream contenente gli elementi dello stream originale in una quantità che non supera maxSize. È un'operazione intermedia che scarta gli elementi rimanenti dopo aver elaborato la quantità specificata.

Effetti principali:

  • Limitazione della dimensione: Applica una restrizione al numero massimo di elementi nello stream risultante.
  • Pigrizia: La valutazione degli elementi avviene solo quando vengono effettivamente richiesti da un'operazione terminale, fino a raggiungere il limite impostato.
  • Possibilità di troncatura: Se lo stream originale contiene più elementi di maxSize, lo stream sarà troncato a maxSize elementi. Se ne contiene di meno, verranno usati tutti gli elementi disponibili.

Esempio di utilizzo:

List<String> nomi = Arrays.asList("Alice", "Bob", "Charlie", "David", "Eve");

List<String> primiDueNomi = nomi.stream()
                                .limit(2) // Limita lo stream ai primi due elementi
                                .collect(Collectors.toList()); // Raccoglie in una lista

// primiDueNomi conterrà ["Alice", "Bob"]