Java IntStream limit()

Java IntStream limit()

IntStream limit(long maxSize) 返回一个由这个流的元素组成的流,被截断的长度不超过maxSize。

注意: IntStream limit()是一个 短路的有状态的中间操作 ,也就是说,当对一个无限的输入进行处理时,它可能会产生一个有限的流作为结果,而不处理整个输入。

语法:

IntStream limit(long maxSize)

参数

  1. IntStream : 一个原始int值元素的序列。这是对Stream的int基元特化。
  2. maxSize : 流应该限制的元素数量。

返回值 : 该函数返回一个由这个流的元素组成的流,被截断,长度不超过maxSize。

异常 : 如果maxSize为负数,该函数会抛出 IllegalArgumentException

例子 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);
    }
}

输出:

2
4
6

例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);
    }
}

输出:

5
6
7
8

例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);
    }
}

输出:

4
6
8
10

IntStream limit()和IntStream skip()之间的区别。

  1. limit()方法返回一个由第一个maxSize元素组成的缩小的流,但是skip()方法在跳过第一个maxSize元素后返回一个剩余元素的流。
  2. limit()是一个短路的有状态的中间操作,即当处理一个无限的输入时,它可能会产生一个有限的流作为结果,而skip()是一个有状态的中间操作,即它可能需要在产生一个结果之前处理整个输入。

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程