编写此方法的更有效方法是什么:
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;
}
答案 0 :(得分:5)
如果您不拥有clone(),则可以将内部替换为:
System.arraycopy( in[i], 0, ret[i], 0, in[0].length );
但是,由于你在最里面的循环中创建了一个新对象,我没有看到任何其他方法。
答案 1 :(得分:0)