In  this tutorial, we will see “How to generate Infinite stream of values using Java 8?”Generate infinite stream of values in java 8

 

In Java 8, the Stream.generate() method can be used to generate an infinite stream of values. This method takes a Supplier<T> as an argument which is a functional interface that defines a method get() that generates the next value in the stream.

Java 8 – How to Generate Infinite Stream of Values? Share on X

Using below example, learn how generate() method can be used to generate an infinite stream of random numbers:

/**
 * Using 'generate' method of Java 8 Stream, create infinite stream of values
 * @author Deepak Verma
 *
 */

import java.util.Random;
import java.util.stream.Stream;

public class Generate_Infinite_Stream_Of_Values_Java8_Example {

	public static void main(String args[]) {

		Random random = new Random();
		
		Stream<Double> randomNumbers = Stream.generate(random::nextDouble);
		
		randomNumbers.forEach(System.out::println);
	}
}

 

Output:

0.0866725571572432
0.5356644334800491
0.2192017138052651
0.8080789865151401
0.7752261572301408
0.0018122228851923383
0.2772936988222323
0.07417026154673667
0.8872217548221702
0.038617746014178334
0.6513961288493136
0.035659661529567344
0.10961282276036777
..............
.........
....

check if text or string present in a file using java 8

In the above example, random::nextDouble is a method reference to the nextDouble() method of the Random class, which creates a random double value between 0.0 and 1.0.

In order to limit the stream to a specific value then limit() method can be used:

/**
 * Using 'Limit' method of Java 8 Stream, Limit the infinite stream of values to a specific limit
 * @author Deepak Verma
 *
 */

import java.util.Random;
import java.util.stream.Stream;

public class Generate_Infinite_Stream_Of_Values_Java8_Example {

	public static void main(String args[]) {

		Random random = new Random();
		
		Stream<Double> randomNumbers = Stream.generate(random::nextDouble).limit(5);
		
		randomNumbers.forEach(System.out::println);
	}
}

 

Output:

0.10590612189140236
0.1542923812372361
0.6045931739634557
0.025816524638359373
0.2260982830392817

find second largest number in an array using java 8 stream

Using above example, we can create a stream of random double values  limited to ‘5’.

For your information, let me share that ‘generate’ method can be used to create a stream of any type of elements.

skip method java 8 stream
Stream<String> stringStream = Stream.generate(() -> "test").limit(10);

Generate infinite stream of values in java 8

Using above code, you can create a stream of 5 Strings with value “test”.

Java 8 – How to Generate Infinite Stream of Values? Share on X

Do you like this Post? – then check my other helpful posts:

Other Useful References:

Author

  • Deepak Verma

    Deepak Verma is a Test Automation Consultant and Software development Engineer for more than 10 years. His mission is to help you become an In-demand full stack automation tester.

    He is also the founder of Techndeck, a blog and online coaching platform dedicated to helping you succeed with all the automation basics to advanced testing automation tricks.

    View all posts