当前位置: 首页 > 知识库问答 >
问题:

提供流生成的限制条件[副本]

鲁昕
2023-03-14

我正在写一个计算斐波那契数的代码。用这段代码,我可以生成斐波那契数列的前n个数。

Stream.generate(new Supplier<Long>() {
    private long n1 = 1;
    private long n2 = 2;

    @Override
    public Long get() {
        long fibonacci = n1;
        long n3 = n2 + n1;
        n1 = n2;
        n2 = n3;
        return fibonacci;
    }
}).limit(50).forEach(System.out::println);

方法limit返回stream,它保存传递给此方法的元素数。我想在斐波那契数达到某个值后停止的生成。

我的意思是,如果我想列出所有小于1000的斐波那契数,那么我就不能使用limit,因为我不知道可能有多少斐波那契数。

有没有办法使用lambda表达式来做到这一点?

共有1个答案

王渊
2023-03-14

如果不介意使用迭代器,可以将其写成:

static LongUnaryOperator factorial = x -> x == 0 ? 1
                                      : x * factorial.applyAsLong(x - 1);

public static void main(String[] args) {
    LongStream ls = LongStream.iterate(0, i -> i + 1).map(factorial);
    OfLong it = ls.iterator();
    long next = 0;
    while ((next = it.nextLong()) <= 1000) System.out.println(next);
}
 类似资料:
  • 问题内容: 嗨,我必须在具有大量ID的MySQL语句中使用IN条件。 例 IN语句可以包含的项是否有限制? 问题答案: 没有,请查看有关IN功能的手册: 列表中的值数仅受max_allowed_pa​​cket值限制。

  • 问题内容: 我正在使用以下代码: 但是,如果在子句中放置了超过3000个数字,则SQL会引发错误。 有谁知道是否有尺寸限制或类似限制?! 问题答案: 根据所使用的数据库引擎的不同,指令的长度可能会有限制。 SQL Server有一个很大的限制: http://msdn.microsoft.com/en- us/library/ms143432.aspx ORACLE在另一端有一个非常容易达到的限制

  • 我想使用swagger codegen maven插件为我的API生成JAX-RS服务器存根,但我想使用我自己的服务实现类,而不是生成的服务实现类。除了这个类,还有什么方法可以生成所有的东西吗?对于我的API,该工具生成四个API类:ProfilesApi、ProfilesApiService、ProfilesApiServiceFactory和ProfilesApiServiceImpl。 我目

  • 问题内容: 在Google上搜索后,我发现Elasticsearch的最大查询条件限制为1024? 它是可配置的吗?如果可以,请提供任何步骤。 谢谢,Sameer 问题答案: 默认值为1024,但是它是可配置的。在elasticsearch配置文件(例如yml文件)中,设置提及的设置:例如。

  • 问题内容: 关闭。 此问题不符合堆栈溢出准则。它当前不接受答案。 想改善这个问题吗? 更新问题,使其成为Stack Overflow 的主题。 9个月前关闭。 改善这个问题 我需要一个用于在Java中生成控制流的工具,而不是可视化绘制的工具,我可以使用它来处理类似路径条件之类的东西。任何人 ? 问题答案: 为了将来记录,我发现最适合我的需求的是Soot。 http://www.sable.mcgi

  • 我必须生成一个从\x00到\xff的所有十六进制列表,但用户提供的十六进制除外。 示例: GenerateHex.py 00,03 \X01\X02\X04\X05\X06\X07\X08\X09\X0A\X0B\X0C\X0D\X0E\X0F\X10\X11\X12\X14\X15\X17\X18\X19\X1A\X1B\X1B\X1F\X20\X21\X22\X25\X26\X28\X29\X