lambda如何使用Java Streams获取1到100的斐波那契数列,并将其添加到地图中
我可以用普通的方法编写代码。但我试着使用流,但限制在这个范围和IntStream中不起作用。range()方法我不能在这里使用
Stream.iterate(new int[]{0,1}, f -> new int[]{f[1], f[0]+f[1]})
.limit(10)
.map(n -> n[0])
.forEach(System.out::println);
//.collect(Collectors.toList());
请回复
# 1 楼答案
您可以使用8以上版本的Java,然后
takeWhile
和dropWhile
:当然,使用
{ 1, 2 }
作为种子可以避免dropWhile
Java8没有提供一种基于谓词的方式来限制/停止流,所以我坚持使用该版本的循环