Example 1: Using Stream.iterate()
Stream<Integer> infiniteNumbers = Stream.iterate(1, n -> n + 1);
List<Integer> firstTen = infiniteNumbers
.limit(10) // limit to first 10 elements
.collect(Collectors.toList());
System.out.println(firstTen); // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Example 2: Using Stream.generate()
Stream<Double> randomNumbers = Stream.generate(Math::random);
List<Double> firstFive = randomNumbers
.limit(5) // limit to first 5 elements
.collect(Collectors.toList());
System.out.println(firstFive);