java如何将多维数组复制到单个数组?
我想将包含随机数的多维行和列数组复制到另一个本地数组中,但只应复制行,这就是我所做的:
arr = new int[rows][cols];
for(int i = 0; i<arr.length; i++){
for(int j = 0; j<arr[i].length;j++){
arr[i][j] = (int)(range*Math.random());
}
public int[] getRow(int r){
int copy[] = new int[arr.length];
for(int i = 0; i<copy.length;i++) {
System.arraycopy(arr[i], 0, copy[i], 0, r);
}
return copy;
}
# 1 楼答案
# 2 楼答案
以下是使用arraycopy的正确方法:
写上述内容的简短方式:
第三种方式:
这三种方法都会产生相同的结果。至于速度,前两种方式可能比第三种方式快一点点
# 3 楼答案
我想你想要这样的东西
# 4 楼答案
System.arraycopy(arr[i], 0, copy[i], 0, r);
是错误的arr[i]
是一个数组,copy[I]
不是。我不知道r
是什么,但不知何故,我怀疑这是要复制的元素数。查看http://docs.oracle.com/javase/8/docs/api/java/lang/System.html#arraycopy-java.lang.Object-int-java.lang.Object-int-int-上的文档,了解参数应该是什么。您需要源数组和目标数组具有相同的基类型,并且都是数组,目标数组的长度必须足以容纳复制的元素数,而这可能不是分配给它时arr[][]
中的行数