50,527
社区成员
发帖
与我相关
我的任务
分享
import java.util.Arrays;
public class Test {
static void fun(int a[]){
int array[]=a.clone();
array[0]=-1;
}
static void fun(int b[][]){
// int array[][]=b;
int array[][]=b.clone();
//为什么这里没有复制b引用的对象呢?而上面一维数组却复制了
array[0][0]=-2;
}
public static void main(String[] args){
int one[]={1,2,3};
int two[][]={{1,2},{3,4,5}};
fun(one);
fun(two);
//输出
System.out.println("一维数组:"+Arrays.toString(one));
System.out.print("二维数组:");
for(int n[]:two)
System.out.print(Arrays.toString(n));
}
}
static void fun(int b[][]){
int array[][] = new int[b.length][];
for(int i=0;i<b.length;i++){
array[i]=new int[b[i].length];
for(int j=0;j<b[i].length;j++)
array[i][j]=b[i][j];
}
array[0][0]=-2;
}
看来还得是一维一维地拷贝