我正在寻找有关如何创建一种基于两个参数生成2D数组的方法的建议,整数s决定2D数组的行数,而int x []将是不同的1D数组所在的位置长度为20的像素将填充2D数组的每一行。到目前为止,这是我想出的方法,但是它只用0s填充每一行,只有一行用输入数组填充。我基本上需要用一堆相同大小的1D数组填充自动生成的2D数组的每一行。请帮忙。谢谢 !
public class c {
public int [][] f;
public int [][] a(int x[], int s){
f = new int [s][20];
for(int j = 0; j < x.length; j++) {
f[s-1][j] = x[j];
}
return f;
}
public void d(){
for (int i =0; i < f.length; i++) {
for(int j = 0; j < f[i].length; j++) {
System.out.print(f[i][j] + " ");
}
System.out.println(" ");
}
}
}
答案 0 :(得分:0)
我可以看到,您所需要做的就是创建具有给定行数的2D数组,并将给定的1D数组复制到的每一行中。这很简单:
示例:
public static int[][] createArray(int[] arr, int totalRows) {
int[][] res = new int[totalRows][arr.length];
for (int row = 0; row < totalRows; row++)
System.arraycopy(arr, 0, res[row], 0, res[row].length);
return res;
}
答案 1 :(得分:0)
这可以通过使用Java中的流api来实现
int[][] arrInt = { { 1, 2 }, { 3, 4, 5 } };
int result[] = Arrays.stream(arrInt).flatMapToInt(Arrays::stream).toArray();
System.out.println(Arrays.toString(result));