Importance of iterate() method of Stream API in Java 9?

In Java 8, the iterate() method of Stream API takes the seed and the unary operator as arguments. As stream becomes infinite, it makes the developer add explicit termination conditions by using limit, findFirst, findAny and etc. In Java 9, the iterate() method of Stream API has added a new argument, a predicate that takes the condition to break the flow.

Syntax

static  Stream iterate(T seed, Predicate super T> hasNext, UnaryOperator next)

Example

import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.List;
public class StreamIterateMethodTest {
   public static void main(String args[]) {
      List numbers1 = Stream.iterate(1, i -> i+1)   // with two arguments
            .limit(10)
            .collect(Collectors.toList());
      System.out.println("In Java 8:" + numbers1);
      List numbers2 = Stream.iterate(1, i -> i  i+1)    // with three arguments
            .collect(Collectors.toList());
      System.out.println("In Java 9:" + numbers2);
   }
}

Output

In Java 8:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
In Java 9:[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Updated on: 2020-02-21T05:11:39+05:30

492 Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements