java IntStream按步骤迭代
如何使用IntStream在步骤(3)中迭代一系列数字(0-100)
我尝试了iterate
,但这从未停止执行
IntStream.iterate(0, n -> n + 3).filter(x -> x > 0 && x < 100).forEach(System.out::println)
你可以在下面搜索框中键入要查询的问题!
如何使用IntStream在步骤(3)中迭代一系列数字(0-100)
我尝试了iterate
,但这从未停止执行
IntStream.iterate(0, n -> n + 3).filter(x -> x > 0 && x < 100).forEach(System.out::println)
# 1 楼答案
实际上,你也可以通过peek和allMatch的组合获得相同的结果:
这张照片
但无论如何,这一个更快:
Java 9更新:
现在,使用Java 9更容易实现同样的迭代:
# 2 楼答案
limit
也可以使用# 3 楼答案
如果您可以添加库依赖项,那么Eclipse Collections中的^{} 类具有我认为您需要的step函数。我尝试了几种不同的方法将
IntInterval
转换为IntStream
,因为最初的问题要求IntStream
。以下是我使用IntInterval
然后将其转换为IntStream
的解决方案IntInterval
包含在from和to likeIntStream.rangeClosed()
上注意:我是Eclipse集合的提交者
# 4 楼答案
在JDK9中有
takeWhile
1# 5 楼答案
实际上
range
是理想的选择编辑:霍尔格的解决方案是执行最快的解决方案
因为下面几行代码
显示这些基准测试结果
# 6 楼答案
优雅的解决方案:
小溪。iterate()支持一个hasNext()谓词(在Java 9中添加),该谓词可用于以更自然的方式限制流