Java 用谓词限制流
是否存在Java 8流操作来限制(可能是无限的)Stream
直到第一个元素与谓词不匹配?
在Java 9中,我们可以使用takeWhile
下面的示例来打印所有小于10的数字。
IntStream .iterate(1, n -> n + 1)
.takeWhile(n -> n < 10)
.forEach(System.out::println);
由于Java 8中没有这样的操作,以一般方式实现它的最佳方法是什么?
回答:
操作takeWhile
并dropWhile
已添加到JDK9。你的示例代码
IntStream .iterate(1, n -> n + 1)
.takeWhile(n -> n < 10)
.forEach(System.out::println);
在JDK 9下编译和运行时,其行为将完全符合你的预期。
JDK 9已发布。可在此处下载:http : //jdk.java.net/9/
以上是 Java 用谓词限制流 的全部内容, 来源链接: utcz.com/qa/412502.html