我注意到在Java中,当您将数组传递给函数时,它会修改原始数组。我正在尝试实现使用递归的回溯方法,我希望每次调用它都有自己的数组复制传入的数组的内容。
例如,假设我有一个原始数组,并且我通过一个调用该函数的循环。我希望每个调用都有一个包含原始数组中所有内容的数组,但它修改的任何内容都保留在其自身内,而不是修改原始数组。这可能吗?
如果有解决方案,那么arraylists也可以吗?
答案 0 :(得分:5)
您可以使用Arrays.copyOf
方法。
答案 1 :(得分:2)
在Java中执行此操作的最快方法可能是System.arraycopy
方法documented here。这是一种本地方法,通常和你一样快。
在某些情况下,您可以尝试写入时复制方法,如果您没有真正修改整个数组,这可能会有所帮助。