Java中的 DoubleStream limit() 示例
DoubleStream limit(long maxSize)返回一个由该流的元素组成的流,截断长度不超过 maxSize。
注意: DoubleStream limit() 是一种短路状态中间操作,即,当处理无限输入时,它可能会在不处理整个输入的情况下产生有限流。
句法 :
DoubleStream limit(long maxSize)
参数 :
- DoubleStream :原始双值元素的序列。这是 Stream 的双重原始特化。
- 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() 之间的区别:
- limit() 方法返回第一个 maxSize 元素的缩减流,但 skip() 方法在跳过第一个 maxSize 元素后返回剩余元素流。
- limit() 是一个短路的有状态中间操作,即,当使用无限输入进行处理时,它可能会在不处理整个输入的情况下产生一个有限流,但 skip() 是一个有状态的中间操作,即它可能需要处理在产生结果之前的整个输入。