Java:前n个整数的数组

big*_*377 4 java arrays

在不进行显式循环的情况下创建前n个整数的Java数组的任何快捷方式?在R中,它会

intArray = c(1:n) 
Run Code Online (Sandbox Code Playgroud)

(并且得到的矢量将是1,2,...,n).

Ale*_* C. 16

如果你使用的是,你可以这样做:

int[] arr = IntStream.range(1, n).toArray();
Run Code Online (Sandbox Code Playgroud)

这将创建一个包含来自的整数的数组[0, n).rangeClosed如果要包含n在结果数组中,可以使用.

如果要指定步骤,可以iterate然后limit使用流来获取所需的第一个n元素.

int[] arr = IntStream.iterate(0, i ->i + 2).limit(10).toArray(); //[0, 2, 4, 6, 8, 10, 12, 14, 16, 18]
Run Code Online (Sandbox Code Playgroud)

否则我想最简单的方法是使用循环并填充数组.如果需要,可以创建辅助方法.

static int[] fillArray(int from, int to, int step){
    if(to < from || step <= 0)
        throw new IllegalArgumentException("to < from or step <= 0");

    int[] array = new int[(to-from)/step+1];
    for(int i = 0; i < array.length; i++){
        array[i] = from;
        from += step;
    }
    return array;
}
...
int[] arr3 = fillArray(0, 10, 3); //[0, 3, 6, 9]
Run Code Online (Sandbox Code Playgroud)

您可以根据需要调整此方法,从上行到下行,并使用负步.