使用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