Java:前n个整数的数组

时间:2014-04-17 19:55:45

标签: java arrays

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

intArray = c(1:n) 

(结果向量为1,2,...,n)。

1 个答案:

答案 0 :(得分:15)

如果您正在使用,则可以执行以下操作:

int[] arr = IntStream.range(1, n).toArray();

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

如果您想指定一个步骤,您可以iterate然后limit来获取您想要的第一个n元素。

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

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

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]

您可以根据自己的需要调整此方法,从上限到下限,并采用否定步骤。