LongStream limit(long maxSize) returns a stream consisting of the elements of this stream, truncated to be no longer than maxSize in length.
Note : LongStream 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 :
LongStream limit(long maxSize)
Parameters :
- LongStream : A sequence of primitive long-valued elements. This is the long 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 LongStream limit // (long maxSize) import java.util.*;
import java.util.stream.LongStream;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating an LongStream
LongStream stream = LongStream.of(2L, 4L, 6L, 8L, 10L);
// Using LongStream 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 LongStream limit // (long maxSize) import java.util.*;
import java.util.stream.LongStream;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating an LongStream of numbers [5, 6, .. 11]
LongStream stream = LongStream.range( 5 , 12 );
// Using LongStream 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 LongStream limit // (long maxSize) import java.util.*;
import java.util.stream.LongStream;
class GFG {
// Driver code
public static void main(String[] args)
{
// Creating an LongStream
LongStream stream = LongStream.iterate(4L, num -> num + 2 );
// Using LongStream 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 LongStream limit() and LongStream 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.