Stream iterate(T seed, UnaryOperator<T> f)
creates an infinite Stream from iterative application of a function f to an initial element seed.
The result Stream consists seed, f(seed), f(f(seed)), etc.
iterate
has the following syntax.
static <T> Stream<T> iterate(T seed, UnaryOperator<T> f)
The following example shows how to use iterate
.
import java.util.stream.Stream; //from w w w .j a va 2s . c o m public class Main { public static void main(String[] args) { Stream.iterate(1,n->n + 1) .limit(10) .forEach(System.out::println); } }
The code above generates the following result.
Calculate fibonnaci with iterate and Stream
import java.util.stream.Stream; // ww w. j a v a 2s .c o m public class Main { public static void main(String[] args) { // fibonnaci with iterate Stream.iterate(new int[]{0, 1}, t -> new int[]{t[1],t[0] + t[1]}) .limit(10) .forEach(t -> System.out.println("(" + t[0] + ", " + t[1] + ")")); } }
The code above generates the following result.