使用 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()
可确保在触发操作之前仅评估足够的流元素。
是否可以使用流来确定该流的子集是否大于阈值。
假设我有一个年龄列表,如果 20 岁以上的年龄超过 10 个,我想触发某个动作。
到目前为止我已经尝试过过滤(因为这会给我 20 岁以上的年龄),我可以算出,这很好,因为如果检查计数我可以正常进行,但我觉得我应该能够走得更远,更明确。
谢谢 加文
我不认为存在诸如 hasAtLeast(n)
之类的流终端操作,但是通过组合一些其他操作来实现此行为足够简单。
假设流是 IntStream(很容易为对象流提供类似的解决方案):
if (stream.filter(i -> i > 20).limit(11).count() > 10) {
}
虽然这与您已经尝试过的没有太大区别,但使用 limit()
可确保在触发操作之前仅评估足够的流元素。