在Java中深克隆多维数组...? [英] Deep cloning multidimensional arrays in Java...?
本文介绍了在Java中深克隆多维数组...?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我有已推断出大小的2多维数组(实际上好他们唯一的2D)。我如何深克隆呢?这是我迄今为止得到:
公共富(字[] []原){
克隆=新的字符[original.length] [];
的for(int i = 0; I< original.length,我++)
克隆[I] =(字符[])[i]原.clone();
}
一个平等的测试 original.equals(克隆);
吐出假的。为什么? :|
解决方案
/ **创建布尔数组的独立副本(克隆)。
* @参数数组数组被克隆。
返回:一个独立的深的结构数组的克隆。
* /
公共静态布尔[] [] clone2DArray(布尔[] []数组){
诠释行= array.length;
// INT rowIs =阵列[0]。长度; //克隆数组的浅的结构
布尔[] [] newArray =(布尔[] [])array.clone();
//克隆数组的深结构
对于(INT行= 0;&行LT;排;排++){
newArray [行] =(布尔[])数组[行] .clone();
} 返回newArray;
}
I have two multidimensional arrays (well actually they're only 2D) which have inferred size. How do I deep clone them? Here's what I have gotten so far:
public foo(Character[][] original){
clone = new Character[original.length][];
for(int i = 0; i < original.length; i++)
clone[i] = (Character[]) original[i].clone();
}
A test for equality original.equals(clone);
spits out a false. Why? :|
解决方案
/**Creates an independent copy(clone) of the boolean array.
* @param array The array to be cloned.
* @return An independent 'deep' structure clone of the array.
*/
public static boolean[][] clone2DArray(boolean[][] array) {
int rows=array.length ;
//int rowIs=array[0].length ;
//clone the 'shallow' structure of array
boolean[][] newArray =(boolean[][]) array.clone();
//clone the 'deep' structure of array
for(int row=0;row<rows;row++){
newArray[row]=(boolean[]) array[row].clone();
}
return newArray;
}
这篇关于在Java中深克隆多维数组...?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文