在不进行显式循环的情况下创建前n个整数的Java数组的任何快捷方式?在R中,它会
intArray = c(1:n)
Run Code Online (Sandbox Code Playgroud)
(并且得到的矢量将是1,2,...,n).
Ale*_* C. 16
如果你使用的是java-8,你可以这样做:
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)
您可以根据需要调整此方法,从上行到下行,并使用负步.
| 归档时间: |
|
| 查看次数: |
1465 次 |
| 最近记录: |