Java 写入静态方法以复制二维数组
我试图编写一个静态方法,生成并返回作为参数传递的二维int数组的副本。 t这是我写的代码,但不确定是否正确Java 写入静态方法以复制二维数组,java,Java,我试图编写一个静态方法,生成并返回作为参数传递的二维int数组的副本。 t这是我写的代码,但不确定是否正确 public class Array { private static int[][] arraycopy; public Array(){ arraycopy =new int[0][0]; } public static int makecopy(int[][]original){ for(int i=0
public class Array {
private static int[][] arraycopy;
public Array(){
arraycopy =new int[0][0];
}
public static int makecopy(int[][]original){
for(int i=0;i<original.length;i++) {
arraycopy[i]=original[i];
for(int j=0;i<original[i].length; j++){
arraycopy[j]=original[j];
}
}
return arraycopy[i][j];
}
公共类数组{
私有静态int[][]阵列复制;
公共数组(){
arraycopy=新整数[0][0];
}
公共静态int-makecopy(int[]原件){
for(int i=0;ireturn arraycopy[i][j]
在那些for
循环的范围之外没有任何意义:i
和j
仅在各自的循环中定义。这就是为什么会出现错误的原因。幸运的是,在这一点上,您并不需要它们
您希望将返回类型更改为int[][]
,将返回语句更改为仅return arraycopy;
直接回答:
i和j只存在于它们声明的范围内,这意味着循环:
for(int i=0;i<original.length;i++) {
arraycopy[i]=original[i];
for(int j=0;i<original[i].length; j++){
arraycopy[j]=original[j];
}
}
将此作为第一步。在mbyd如何将拷贝数组初始化为其正确大小我当前有公共静态int[][]makeCopy(int[][]original){arraycopy=new int[original.length][];
public static int makecopy(int[][]original){
int i, j;
for( i=0;i<original.length;i++) {
arraycopy[i]=original[i];
for( j=0;i<original[i].length; j++){
arraycopy[j]=original[j];
}
}
return arraycopy[i][j];
}
public static int[][] makecopy(int[][]original){
int i, j;
int arraycopy[][] = new int[original.length][original[0].length];
for( i=0;i<original.length;i++)
{
for( j=0;j<original[i].length; j++)
{
arraycopy[i][j] = original[i][j];
}
}
return arraycopy;
}