IntStream of() in Java

18 May, 2021
IntStream of(int t) returns a sequential IntStream containing a single element. Syntax :  
static IntStream of(int t)
Parameters :  
IntStream : A sequence of primitive int-valued elements.t : Represents the single element in the IntStream.
IntStream : A sequence of primitive int-valued elements.
t : Represents the single element in the IntStream.
Return Value : IntStream of(int t) returns a sequential IntStream containing the single specified element.Example :  
Java
// Java code for IntStream of(int t)// to get a sequential IntStream// containing a single element.import java.util.*;import java.util.stream.IntStream; class GFG {     // Driver code    public static void main(String[] args)    {        // Creating an IntStream having single element only        IntStream stream = IntStream.of(-7);         // Displaying the IntStream having single element        stream.forEach(System.out::println);    }}
Output :  
-7
 
IntStream of(int... values) returns a sequential ordered stream whose elements are the specified values. Syntax :  
static IntStream of(int... values)
Parameters :  
IntStream : A sequence of primitive int-valued elements.values : Represents the elements of the new stream.
IntStream : A sequence of primitive int-valued elements.
values : Represents the elements of the new stream.
Return Value : IntStream of(int... values) returns a sequential ordered stream whose elements are the specified values.Example 1 :  
Java
// Java code for IntStream of(int... values)// to get a sequential ordered stream whose// elements are the specified values.import java.util.*;import java.util.stream.IntStream; class GFG {     // Driver code    public static void main(String[] args)    {        // Creating an IntStream        IntStream stream = IntStream.of(-7, -9, -11);         // Displaying the sequential ordered stream        stream.forEach(System.out::println);    }}
Output :  
-7
-9
-11
Example 2 :  
Java
// Java code for IntStream of(int... values)// to get a sequential ordered stream whose// elements are the specified values.import java.util.*;import java.util.stream.IntStream; class GFG {     // Driver code    public static void main(String[] args)    {        // Creating an IntStream        IntStream stream = IntStream.of(-7, -9, -11);         // Storing the count of elements in IntStream        long total = stream.count();         // Displaying the count of elements        System.out.println(total);    }}
Output :  
3
 Example 3
Streams are not reusable if we have performed terminal operation on stream and try to reuse them again IllegalStateExeception will be generated 
Java
import java.util.stream.IntStream;import java.io.PrintStream;class GFG{    static final PrintStream out=System.out;    public static void main(String $[]){        IntStream intStream=IntStream.of(10,20,30);        out.println(intStream.min());        try{            out.println(intStream.min());//Trying to use a stream that has been closed previously        }catch(IllegalStateException e){            out.println(e);        }    }}
Output :
OptionalInt[10]

java.lang.IllegalStateException: stream has already been operated upon or closed
To reuse a stream  we need Supplier class when get() method of Supplier is called every time it will generate a new instance and return it.
Java
import java.util.stream.IntStream;import java.io.PrintStream;import java.util.function.Supplier;import java.util.List;import java.util.stream.Collectors;public class IntStreamClass{    static final PrintStream out=System.out;    public static void main(String $[]){        //Reusing a stream        Supplier<IntStream>supplier=()->IntStream.of(343,434,61,1,512,                                                     5234,613434,561);        //supplier.get() will return an instance of IntStream        //sorting -> printing each value        supplier.get()            .sorted()            .forEach(System.out::println);        out.println();               //filtering even numbers -> sorting -> printing each value        supplier.get()            .filter(x->x%2==0)            .sorted()            .forEach(System.out::println);        out.println();               //filtering odd numbers -> boxing(converting to Integer) -> converted to List<Integer> -> streaming -> sorting in reverse order        //-> printing each value        supplier.get()            .filter(x->(x&1)==0)            .boxed()            .collect(Collectors.toList())            .stream()            .sorted((a,b)->b-a)            .forEach(System.out::println);    }}
Output :
1
61
343
434
512
561
5234
613434

434
512
5234
613434

613434
5234
512
434
Example 4
Finding min,max,sum and average from an IntStream
Java
import java.util.stream.IntStream;import java.io.PrintStream;import java.util.function.Supplier;import java.util.OptionalInt;import java.util.OptionalDouble;public class IntStreamClass{    static final PrintStream out=System.out;    public static void main(String $[]){        Supplier<IntStream>supplier=()->IntStream.of(343,434,61,1,512,                                                     5234,613434,561);                 //Average        OptionalDouble avg=supplier.get().average();        out.println("Average : "+avg.orElse(0));        // Sum        int sum=supplier.get().sum();        out.println("Sum : "+sum);        // Min        OptionalInt min=supplier.get().min();        out.println("min : "+min.orElse(0));        // Max        OptionalInt max=supplier.get().max();        out.println("max : "+max.orElse(0));    }}
Output :
Average : 77572.5
Sum : 620580
min : 1
max : 613434
Example 5
Range based operation
Java
import java.util.stream.IntStream;import java.io.PrintStream;import java.util.function.Supplier;import java.util.OptionalInt;import java.util.OptionalDouble;public class IntStreamClass{         static final PrintStream out=System.out;         public static void main(String $[]){         //Range                 //Will iterate from 0 to 5        IntStream.range(0,6)            .forEach(System.out::println);        out.println();         //Will iterate from 0 to 6        IntStream.rangeClosed(0,6)            .forEach(System.out::println);        out.println();                 //rangeSum=0+1+2+3+...+99=4950        int rangeSum=IntStream.range(0,100).sum();        out.println("sum[0,100) : "+rangeSum);                 //rangeClosedSum=0+1+2+3+...+100=5050        int rangeClosedSum=IntStream.rangeClosed(0,100).sum();        out.println("sum[0,100] : "+rangeClosedSum);    }}
DevParzival404
Java - util package
Java-Functions
java-intstream
java-stream
Java
Java
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.
Queue Interface In Java
Object Oriented Programming (OOPs) Concept in Java
Stack Class in Java
Interfaces in Java
ArrayList in Java
HashMap in Java with Examples
Collections in Java
ChronoZonedDateTime isAfter() method in Java with Examples
Multidimensional Arrays in Java
Introduction to Java