Learnitweb

Create an Infinite Stream and Limit Output in Java

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);