Java Language Stream infiniti

Esempio

È possibile generare un Stream che non termina. Chiamando un metodo terminale su un Stream infinito Stream il Stream entra in un ciclo infinito. Il metodo limit di un Stream può essere utilizzato per limitare il numero di termini del Stream che Java elabora.

Questo esempio genera un Stream di tutti i numeri naturali, a partire dal numero 1. Ogni successivo termine del Stream è uno più alto del precedente. Chiamando il metodo limite di questo Stream , vengono considerati e stampati solo i primi cinque termini del Stream .

// Generate infinite stream - 1, 2, 3, 4, 5, 6, 7, ...
IntStream naturalNumbers = IntStream.iterate(1, x -> x + 1);

// Print out only the first 5 terms
naturalNumbers.limit(5).forEach(System.out::println);

Produzione:

1
2
3
4
5


Un altro modo per generare un flusso infinito è utilizzare il metodo Stream.generate . Questo metodo richiede un lambda di tipo Supplier .

// Generate an infinite stream of random numbers
Stream<Double> infiniteRandomNumbers = Stream.generate(Math::random);

// Print out only the first 10 random numbers
infiniteRandomNumbers.limit(10).forEach(System.out::println);