IntStream limit(long maxSize) returns a stream consisting of the elements of this stream, truncated to be no longer than maxSize in length.
Note : IntStream limit() is a short-circuiting stateful intermediate operation i.e, when processed with an infinite input, it may produce a finite stream as a result without processing the entire input.
Syntax :
IntStream limit(long maxSize)
Parameters :
- IntStream : A sequence of primitive int-valued elements. This is the int primitive specialization of Stream.
- maxSize : The number of elements the stream should be limited to.
Return Value : The function returns a stream consisting of the elements of this stream, truncated to be no longer than maxSize in length.
Exception : The function throws IllegalArgumentException if maxSize is negative.
Example 1 :
// Java code for IntStream limit// (long maxSize)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(2, 4, 6, 8, 10);          // Using IntStream limit(long maxSize) to        // get a stream consisting of the elements of        // this stream, truncated to be no longer        // than maxSize in length.        stream.limit(3).forEach(System.out::println);    }} |
Output :
2 4 6
Example 2 :
// Java code for IntStream limit// (long maxSize)import java.util.*;import java.util.stream.IntStream;  class GFG {      // Driver code    public static void main(String[] args)    {        // Creating an IntStream of numbers [5, 6, .. 11]        IntStream stream = IntStream.range(5, 12);          // Using IntStream limit(long maxSize) to        // get a stream consisting of the elements of        // this stream, truncated to be no longer        // than maxSize in length.        stream.limit(4).forEach(System.out::println);    }} |
Output :
5 6 7 8
Example 3 :
// Java code for IntStream limit// (long maxSize)import java.util.*;import java.util.stream.IntStream;  class GFG {      // Driver code    public static void main(String[] args)    {        // Creating an IntStream        IntStream stream = IntStream.iterate(4, num -> num + 2);          // Using IntStream limit(long maxSize) to        // get a stream consisting of the elements of        // this stream, truncated to be no longer        // than maxSize in length.        stream.limit(4).forEach(System.out::println);    }} |
Output :
4 6 8 10
Difference between IntStream limit() and IntStream skip() :
- The limit() method returns a reduced stream of first maxSize elements but skip() method returns a stream of remaining elements after skipping first maxSize elements.
- limit() is a short-circuiting stateful intermediate operation i.e, when processed with an infinite input, it may produce a finite stream as a result without processing the entire input but skip() is a stateful intermediate operation i.e, it may need to process the entire input before producing a result.

… [Trackback]
[…] Find More on that Topic: geeksforgeeks.org/intstream-limit-in-java/ […]