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

Using Java Streams determine if subset of stream is over a threshold

是否可以使用流来确定该流的子集是否大于阈值。

假设我有一个年龄列表,如果 20 岁以上的年龄超过 10 个,我想触发某个动作。

到目前为止我已经尝试过过滤(因为这会给我 20 岁以上的年龄),我可以算出,这很好,因为如果检查计数我可以正常进行,但我觉得我应该能够走得更远,更明确。

谢谢 加文

我不认为存在诸如 hasAtLeast(n) 之类的流终端操作,但是通过组合一些其他操作来实现此行为足够简单。

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

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

}

虽然这与您已经尝试过的没有太大区别,但使用 limit() 可确保在触发操作之前仅评估足够的流元素。