当前位置: 首页 > 面试题库 >

使用Stream而不是for循环创建增量int数组

浦墨竹
2023-03-14
问题内容

我想创建一个构建增量数字数组的函数。

例如,我想要获得类似的东西:

int[] array = new int[]{1, 2, 3, 4, 5, 6, 7, 8, ..., 1000000};

该函数将接收两个参数:数组的起始编号(包括起始编号)和最终长度:

public int[] buildIncrementalArray(int start, int length) { ... }

我知道如何使用for循环:

public int[] buildIncrementalArray(int start, int length) {
    int[] result = new int[length];
    for(int i = 0 ; i < length ; i++) {
        result[i] = start + i;
    }
    return result;
}

我要使用Java 8 Stream API,而不是使用for循环。有人知道如何使用Stream API做到这一点吗?


问题答案:

已经有一个内置方法:

int[] array = IntStream.range(start, start + length).toArray();

IntStream.rangeIntStream以1为增量返回从开始(包括)到结束(不包括)的顺序。

如果要包含end元素,可以使用IntStream.rangeClosed



 类似资料:
  • 问题内容: 我也在学习Java和android。我们可以在while循环中执行的几乎所有事情都可以在while循环中执行。 我发现一个简单的条件,使用while循环比for循环更好 如果我必须在程序中使用counter的值,那么我认为while循环要比for循环好 使用while循环 在这种情况下,我发现while循环要比for循环好,因为如果要在for循环中实现相同的效果,则必须将counter

  • 我如何比较用户输入的这些数组呢?

  • 问题内容: 我看到了如下一行代码: 就我所知,我认为要能够以这种格式编写for循环,我们需要将“ words”作为实现Iterable接口并覆盖iterator()函数的类的实例。但是’words’是String数组类型,这对于循环格式如何正确? 有人可以给我一些提示吗? 问题答案: 从有关此主题的Java教程中: for-each构造也适用于数组,其中它隐藏索引变量而不是迭代器。以下方法返回in

  • 问题内容: 通常我们这样编码: 但是也可以按照以下方式做一些事情: 我想要这样做的真正原因是因为我想使用python-progressbar的自动检测maxval。他们喜欢 问题答案: 您可以与callable一起使用。(您应该传递两个参数,一个用于可调用对象,另一个用于前哨值) 注意 当没有剩余元素并且没有放置哨兵值时,它将阻塞。另外,就像-循环,并且与普通的容器循环不同,它将从队列中删除项目。

  • 问题内容: 我正在尝试使用for循环和嵌套for循环制作圣诞树。为了做到这一点,我需要能够用*做一个金字塔。我已经尝试了无数次,但在制作时遇到了问题。这是我的代码: 我想做的是: 问题答案: 试试这个简单得多的代码: 它使用3个循环: 第一个表示行数, 第二个用于打印空间, 第三个用于打印星号。

  • 问题内容: 我正在做一些有关Java的研究,发现这很令人困惑: 这是永无止境的循环! 有人很好地解释了为什么会发生这种事情吗? 问题答案: 上面的循环与以下内容基本相同:- 3 次你的一部分声明- ,被评估为: - 您需要从此处删除分配,以使其起作用:- (根据评论的OP请求) 的行为:- 就注释中指定的问题而言,以下表达式的结果:- 获得如下:- 让我们标记第二条语句的不同部分:- 现在,首先将