2015-11-11 20:20:04 -08:00
|
|
|
// streams/Fibonacci.java
|
2016-12-30 17:23:13 -08:00
|
|
|
// (c)2017 MindView LLC: see Copyright.txt
|
2015-11-15 15:51:35 -08:00
|
|
|
// We make no guarantees that this code is fit for any purpose.
|
2016-09-23 13:23:35 -06:00
|
|
|
// Visit http://OnJava8.com for more book information.
|
2015-11-11 20:20:04 -08:00
|
|
|
import java.util.stream.*;
|
|
|
|
|
|
|
|
public class Fibonacci {
|
|
|
|
int x = 1;
|
|
|
|
Stream<Integer> numbers() {
|
|
|
|
return Stream.iterate(0, i -> {
|
|
|
|
int result = x + i;
|
|
|
|
x = i;
|
|
|
|
return result;
|
|
|
|
});
|
|
|
|
}
|
|
|
|
public static void main(String[] args) {
|
|
|
|
new Fibonacci().numbers()
|
|
|
|
.skip(20) // Don't use the first 20
|
|
|
|
.limit(10) // Then take 10 of them
|
|
|
|
.forEach(System.out::println);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
/* Output:
|
|
|
|
6765
|
|
|
|
10946
|
|
|
|
17711
|
|
|
|
28657
|
|
|
|
46368
|
|
|
|
75025
|
|
|
|
121393
|
|
|
|
196418
|
|
|
|
317811
|
|
|
|
514229
|
|
|
|
*/
|