📜  Java中的 DoubleStream limit() 示例

📅  最后修改于: 2022-05-13 01:54:30.625000             🧑  作者: Mango

Java中的 DoubleStream limit() 示例

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

注意: DoubleStream limit() 是一种短路状态中间操作,即,当处理无限输入时,它可能会在不处理整个输入的情况下产生有限流。

句法 :

DoubleStream limit(long maxSize)

参数 :

  1. DoubleStream :原始双值元素的序列。这是 Stream 的双重原始特化。
  2. maxSize :流应限制的元素数量。

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

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

示例 1:

// Java code for DoubleStream limit
// (long maxSize)
import java.util.*;
import java.util.stream.DoubleStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating an DoubleStream
        DoubleStream stream = DoubleStream.of(2.3, 4.4, 6.7, 8.9, 10.5);
  
        // Using DoubleStream 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.3
4.4
6.7

示例 2:

// Java code for DoubleStream limit
// (long maxSize)
import java.util.*;
import java.util.stream.DoubleStream;
  
class GFG {
  
    // Driver code
    public static void main(String[] args)
    {
        // Creating an DoubleStream
        DoubleStream stream = DoubleStream.iterate(4.5, num -> num + 3);
  
        // Using DoubleStream 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.5
7.5
10.5
13.5

DoubleStream limit() 和 DoubleStream skip() 之间的区别:

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