我想创建一个构建增量数字数组的函数。
例如,我想获得类似的东西:
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吗?
答案 0 :(得分:16)
已有一种内置方法:
int[] array = IntStream.range(start, start + length).toArray();
IntStream.range
以递增步长1从开头(包括)返回到结尾(不包含)的顺序有序IntStream
。
如果要包含结束元素,可以使用IntStream.rangeClosed
。
答案 1 :(得分:0)
如果您找到简单的代码,则可以使用此代码
int[] myArray = new int[n];
while(n-- >= 0){
myArray[n] = n+1;
}
答案 2 :(得分:-1)
您可以使用IntStream
,
int[] array = new int[length];
IntStream.range(0, length).forEach(i -> array[i] = i + 1);
如果它不适合你,请告诉我。