gpt4 book ai didi

Java-递归-矩阵修改

转载 作者:太空宇宙 更新时间:2023-11-04 12:40:52 25 4
gpt4 key购买 nike

我有一个作业,我正在递归地修改自定义类型的矩阵。在递归之前,我尝试制作矩阵的副本(包含自定义类型的所有属性/变量的“深层”副本)。然而,当递归返回时,原始矩阵已被修改,就好像它被递归地传递给方法(而不是副本)

在下面的代码中,用 g2 调用“a”后修改了“g”:

复制功能:

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
}

最佳答案

当您将数组作为参数传递时,它实际上是数组的引用点,因此当您在方法内修改参数时,您也是在直接更改数组的值。避免问题的最佳方法是创建一个单独的数组,并在调用递归方法之前逐个值地将原始数组的值复制到其中。这样,您就可以在程序结束时获得原始数组和修改后的数组。

关于Java-递归-矩阵修改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36845981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com