编程语言
首页 > 编程语言> > 使用Java Streams确定流的子集是否超过阈值

使用Java Streams确定流的子集是否超过阈值

作者:互联网

是否有可能使用流来确定该流的子集是否大于阈值.

可以说我有一个年龄列表,如果20岁以上的年龄超过10个,我想触发某种操作.

到目前为止,我已经尝试过过滤(因为这将使我超过20岁),我可以进行计数了,因为可以对计数进行正常检查,这很好,但是我认为我应该可以走得更远并且更具声明性.

谢谢
加文

解决方法:

我不认为流有诸如hasAtLeast(n)之类的终端操作,但是通过结合其他一些操作来实现此行为非常简单.

假设流是一个IntStream(很容易为对象流提供类似的解决方案):

if (stream.filter(i -> i > 20).limit(11).count() > 10) {

}

尽管这与您已经尝试的方法没有很大不同,但是使用limit()可确保在触发操作之前仅评估流中足够的元素.

标签:java-8,java-stream,java
来源: https://codeday.me/bug/20191120/2044618.html