Вы можете использовать любую версию Java новее 8, затем takeWhile
и dropWhile
:
import java.util.stream.Stream;
public class Temp {
public static void main(String [] args){
Stream
//Generate a stream of arrays like this {0,1}, {1, 1}, {1, 2}, {2, 3}, {3, 5}...etc.
.iterate(new int[] { 0, 1 }, f -> new int[] { f[1], f[0] + f[1] })
//Keep only the 1st element of each array.
.map(n -> n[0])
//Drop only 0.
.dropWhile(i -> i < 1)
//Take any number which is <= 100.
.takeWhile(i -> i <= 100)
.forEach(System.out::println);
}
}
Конечно, можно избежать dropWhile
, используя { 1, 2 }
в качестве начального числа .
Java 8 не предлагает основанный на предикатах способ ограничения / остановки потока, поэтому я остановлюсь на al oop в этой версии.