编写此方法的更有效方法是什么:
static Foo[][] copy2D(Foo[][] in)
{
Foo[][] ret = new Foo[in.length][in[0].length];
for(int i = 0;i < in.length;i++) {
for(int j = 0;j < in[0].length;j++) {
ret[i][j] = in[i][j].clone();
}
}
return ret;
}
Run Code Online (Sandbox Code Playgroud)
如果你是不是有克隆(),你可以更换内部的搭配:
System.arraycopy( in[i], 0, ret[i], 0, in[0].length );
Run Code Online (Sandbox Code Playgroud)
但是因为你在最里面的循环中创建了一个新对象,所以我没有看到任何其他方法.