私は再帰的にカスタム型の行列を変更している割り当てを持っています。再帰の前に、私はマトリックスのコピーを作成しようとしています(カスタムタイプのすべての属性/変数を持つ "深い"コピー)。ただし、再帰が返された場合、元の行列は再帰的に(コピーではなく)再帰的に渡されたかのように変更されます。Java - 再帰 - 行列の変更
以下のコードでは、g2:
コピー機能:
method a(Square[][]) {
...
g2 = new Square[g.length][];
for(int d = 0; d < g.length; d++) {
g2[d] = Arrays.copyOf(g[d], g[d].length);
}
a(g2);
//Here, g has been modified and not the original set of values
}
答えをありがとう。コピーコンストラクタを使用すると、上記のコードのいずれかが動作するのでしょうか、何か特別なことをする必要がありますか?だから私は次のことを行うことができ、再帰の後に 'g'の元の値を利用できますか?g2 = new Square [g.length] []; (int d = 0; d