复制数组和arraylists的有效方法?

时间:2010-11-20 23:04:06

标签: java arrays arraylist

我注意到在Java中,当您将数组传递给函数时,它会修改原始数组。我正在尝试实现使用递归的回溯方法,我希望每次调用它都有自己的数组复制传入的数组的内容。

例如,假设我有一个原始数组,并且我通过一个调用该函数的循环。我希望每个调用都有一个包含原始数组中所有内容的数组,但它修改的任何内容都保留在其自身内,而不是修改原始数组。这可能吗?

如果有解决方案,那么arraylists也可以吗?

2 个答案:

答案 0 :(得分:5)

您可以使用Arrays.copyOf方法。

答案 1 :(得分:2)

在Java中执行此操作的最快方法可能是System.arraycopy方法documented here。这是一种本地方法,通常和你一样快。

在某些情况下,您可以尝试写入时复制方法,如果您没有真正修改整个数组,这可能会有所帮助。