【发布时间】:2010-11-20 23:04:05
【问题描述】:
我注意到在 Java 中,当您将数组传递给函数时,它会修改原始数组。我正在尝试实现使用递归的回溯方法,并且我希望对它的每次调用都有自己的数组来复制传入的数组的内容。
例如,假设我有一个原始数组,我通过一个循环调用该函数。我希望每个调用都有一个包含原始数组中所有内容的数组,但它修改的任何内容都保留在自身内部,而不是修改原始数组。这可能吗?
如果有解决方案,数组列表也可以吗?
【问题讨论】:
-
我不清楚您是在询问只是复制数组以便其内容引用相同的对象 - 还是实际复制数组内部的对象。如果您指的是前者,那么钱德拉的答案是正确的。但是,如果您确实希望数组中的对象本身不被修改,我强烈建议您避免克隆。相反,您应该考虑使您的对象不可变,因此修改会创建一个新实例。