Java 多个二维阵列
假设我们有一个未指定维度的2D数组,我想创建一个方法来生成数组的倍数,这样这个方法: 平铺(int[][]列表,int行,int列){ ... } 将给我数组按int列水平展开,按int行垂直展开 你怎么能这样做?我的尝试是:Java 多个二维阵列,java,arrays,Java,Arrays,假设我们有一个未指定维度的2D数组,我想创建一个方法来生成数组的倍数,这样这个方法: 平铺(int[][]列表,int行,int列){ ... } 将给我数组按int列水平展开,按int行垂直展开 你怎么能这样做?我的尝试是: public static int[][] tile(int[][] list, int row, int column) { int [][] renewed = new int[row*(list.length)][column*(list[0].length
public static int[][] tile(int[][] list, int row, int column) {
int [][] renewed = new int[row*(list.length)][column*(list[0].length)];
for (int i = 0; i<list.length; i++) {
for (int j = 0; j<renewed.length; j+=row) {
renewed[j] =list[i];
}
}
公共静态int[][]平铺(int[][]列表,int行,int列){
int[][]续订=新int[row*(list.length)][column*(list[0.length]);
对于(int i=0;i请尝试以下方法:
int [][] list={{12,3},{4,6}};
//loop through each array in the 2d array
for(int x=0;x<list.length;x++){
//make copy of array
int[] listcopy=list[x].clone();
//expand length of array by one
list[x]=new int [listcopy.length+1];
list[x][list.length-1]=0;
for(int p=0;p<listcopy.length;p++){
//copy each index to new array
list[x][p]=listcopy[p];
}
}
//make copy of 2d array
int[][] listcopy=list.clone();
//expand length of 2d array by 1
list=new int[listcopy.length+1][];
list[list.length-1]=new int[1];
//assign values to the 2d array
for(int x=0;x<listcopy.length;x++){
list[x]=listcopy[x];
}
int[]list={{12,3},{4,6};
//循环遍历二维数组中的每个数组
出于(int x=0;xAny)原因,这被标记为JavaScript?为什么要执行list copy.length+1?然后设置list[x][list.length-1]到0?要扩展数组,我认为这就是问题的意思。另外,如果您扩展数组并且没有为新索引设置值,您可能会得到空指针异常。抱歉混淆。通过扩展,我的意思是如果初始数组是{12,3}{4,6},行是2,列是3,该方法将生成{12,3,12,3,3}{4,6,4,6}{12,3,12,3,12,3}{4,6,4,6,4,6}。嗯..难道不应该只有{12,3,12,3,3}{4,6,4,6,4,6},因为只有两行吗?