【发布时间】:2012-08-06 06:23:51
【问题描述】:
我一直在尝试对二维数组进行深拷贝,但从未成功。 这是我的代码。
class node {
public node head;
public node left;
public node right;
public node up;
public node down;
}
node[][] OriginalArrayOfNode = new node[100][200];
//filling original node
for (int n = 0; n < 200; n++) {
for(int m = 0; m < 100; m++) {
OriginalArrayOfNode[m][n].head = OriginalArrayOfNode[m][0];
OriginalArrayOfNode[m][n].left = ...
//etc
}
}
node[][]CopyArrayOfNode = new node[100][200];
//The code to copy the original array to new array should be here.
我的问题是如何将我的 OriginalArrayOfNode 深拷贝到 CopyArrayOfNode ? 提前致谢。
编辑:
我正在尝试为 Knuth 的 Dancing Link 算法制作一个带有 4 个指针的循环双向链表的副本。很难追踪问题出在哪里,但我假设如果原始数组给出“x”作为 Knuth 的 DL 算法的结果,那么原始数组的正确深层副本也会给出“x”作为结果,前提是没有其他变量变化和随机修饰符。但是,我尝试了 clone() 方法、arrayutil.copy() 方法,但根据我上面的假设,它们都没有给出“正确”的深拷贝。
【问题讨论】:
-
您遇到了哪些问题?你试过什么?你被困在哪里了?
-
我在复制二维数组时遇到问题。我试过 clone() 但没用。
-
我了解到您在复制二维数组时遇到了问题。你复制它有什么问题?你试过什么不起作用?你在哪里被复制卡住了?您需要更具体,否则很难提供帮助。
-
看看这个 SO 问题:stackoverflow.com/questions/3947227/…
-
你能解释一下你是如何在你的双重嵌套循环的主体的第一行没有得到 NullPointerException 的吗?
OriginalArrayOfNode是声明后的二维空数组,在此示例中您永远不会分配任何新对象。
标签: java generics data-structures multidimensional-array