September 2019
Intermediate to advanced
816 pages
18h 47m
English
An infinite sequential ordered stream can be obtained via Stream.iterate(T seed, UnaryOperator<T> f). The resulting stream starts from the specified seed and continues by applying the f function to the previous element (for example, the n element is f(n-1)).
For example, a stream of integers of type 1, 2, 3, ..., n can be created as follows:
Stream<Integer> infStream = Stream.iterate(1, i -> i + 1);
Furthermore, we can use this stream for a variety of purposes. For example, let's use it to fetch a list of the first 10 even integers:
List<Integer> result = infStream .filter(i -> i % 2 == 0) .limit(10) .collect(Collectors.toList());
The List content will be as follows (notice that the infinite stream will ...