Primitive streams example in java8 (IntStream, LongStream, DoubleStream)

Java stream library have streams specifically for primitive types like int, long, double etc.

  • With primitive streams, values are directly stored in primitives (not in wrapper classes like Integer, Long or Double).
  • The rest of primitives like char, short, byte etc will make use existing streams like IntStream, LongStream and DoubleStream.

1. Create IntStream using IntStream.of

IntStream intStream = IntStream.of(1, 3, 5, 7);
intStream.forEach(System.out::println);
//generate the output of 1, 3, 5, 7  (each digit in new line)

2. Create IntStream using range & rangeClosed method

IntStream stream1to9 = IntStream.range(1, 10);
//generate number from 1 to 9 

IntStream stream1to10 = IntStream.rangeClosed(1, 10);
//generate number from 1 to 10

3. Create IntStream using iterate method

IntStream iterateStream1to10 = IntStream.iterate(1, step -> step + 1).limit(10);
// prints 1 to 10
iterateStream1to10.forEach(System.out::println);
//generate number from 1 to 10

4. Convert IntStream to Stream<Integer>:

IntStream has boxed method to box the primitives to corresponding wrapper classes.

Stream IntegerStream = IntStream.range(1, 10).boxed();

5. Generate statistics of IntStream :

IntStream stream1to10 = IntStream.rangeClosed(1, 10);
double avg = stream1to10.average().getAsDouble();				
System.out.println("Avg :"+ avg);
IntStream stream1to9 = IntStream.range(1, 10);
IntSummaryStatistics statistics = stream1to9.summaryStatistics();
int min = statistics.getMin();
int max = statistics.getMax();
avg = statistics.getAverage();
System.out.println("Min:"+min + " max:"+max + " avg:"+avg);
//output : Min:1 max:9 avg:5.0

6. Program – primitive streams examples java8 (IntStream etc)

package org.learn.PrimitiveStreams;

import java.util.IntSummaryStatistics;
import java.util.stream.IntStream;

public class App {
	public static void main(String[] args) {

		IntStream intStream = IntStream.of(1, 3, 5, 7);
		//Print 1 3 5 7
		intStream.forEach(System.out::println);
		
		IntStream stream1to9 = IntStream.range(1, 10);
		//Prints 1 to 9
		//stream1to9.forEach(System.out::println);
		IntStream stream1to10 = IntStream.rangeClosed(1, 10);
		// prints 1 to 10
		//stream1to10.forEach(System.out::println);		
		IntStream iterateStream1to10 = IntStream.iterate(1, step -> step + 1).limit(10);
		// prints 1 to 10
		//iterateStream1to10.forEach(System.out::println);
		
		//Get avg of stream
		double avg = stream1to10.average().getAsDouble();				
		System.out.println("Avg :"+ avg);
		
		//Generate statistics of int stream
		IntSummaryStatistics statistics = stream1to9.summaryStatistics();
		int min = statistics.getMin();
		int max = statistics.getMax();
		avg = statistics.getAverage();
		System.out.println("Min:"+min + " max:"+max + " avg:"+avg);
		
	}
}

Output – Primitive streams examples java8 (IntSummaryStatistics etc)

1
3
5
7
Avg :5.5
Min:1 max:9 avg:5.0
Scroll to Top