【发布时间】:2020-08-21 01:42:44
【问题描述】:
考虑以下系列
0.5 1.5 4.5 13.5 40.5 121.5
我们可以使用传统的 for 循环来生成这个流。比如下面
float l = 0.5;
for(int i=1;i<limit;i++)
{
if(i == 1 ) System.out.println(l+" ");
float n = l+Math.pow(3,i-1);
System.out.println(n+" ");
l = n;
}
这个 sn-p 效果很好。但是 java 8 流有迭代函数来创建这样的流。
一般语法是Stream.iterate(0.5,f).limit().forEach(System.out::println);
但是我将如何访问流中的前一个元素?我还需要跟踪 i 的 3 次幂。有人可以帮忙吗?我错过了什么吗?
【问题讨论】:
-
如果您关心元素的顺序,请参阅 this answer 了解为什么流可能不是最好的抽象。
标签: java java-8 java-stream series